using System; using System.Collections.Generic; using UnityEngine; namespace WeChatWASM { /// /// 广告的基类 /// public class WXBaseAd { public string instanceId; public static Dictionary Dict = new Dictionary(); public Action onErrorAction; public Action onLoadActon; public WXBaseAd(string id) { instanceId = id; Dict.Add(id, this); } /// /// 显示广告。 /// /// 成功回调 /// 失败回调 public void Show(Action success = null, Action failed = null) { WXSDKManagerHandler.Instance.ShowAd(instanceId, WXCallBackHandler.Add(success), WXCallBackHandler.Add(failed)); } /// /// 显示广告。 /// /// 成功回调 /// 失败回调 public void Show(string branchId, string branchDim, Action success = null, Action failed = null) { WXSDKManagerHandler.Instance.ShowAd(instanceId, branchId, branchDim, WXCallBackHandler.Add(success), WXCallBackHandler.Add(failed)); } /// /// 监听广告错误事件。 /// /// 广告错误事件的回调函数,可详见 https://developers.weixin.qq.com/minigame/dev/api/ad/BannerAd.onError.html public void OnError(Action action) { onErrorAction += action; } /// /// 监听 banner 广告加载事件。 /// /// 广告加载事件的回调函数 public void OnLoad(Action action) { onLoadActon += action; } /// /// 取消监听广告错误事件 /// /// 广告错误事件的回调函数 public void OffError(Action action) { onErrorAction -= action; } /// /// 取消监听广告加载事件 /// /// 广告加载事件的回调函数 public void OffLoad(Action action) { onLoadActon -= action; } /// /// 销毁广告,如果是激励视频广告且multiton参数默认设置为false,则请慎用Destroy,调用后,后续可能无法再创建激励视频广告 /// public void Destroy() { WXSDKManagerHandler.Instance.ADDestroy(instanceId); Dict.Remove(instanceId); } } }