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);
}
}
}