onAdEvent static method
广告事件
Implementation
static onAdEvent({required Map<dynamic, dynamic> arguments}) {
var adLoaderId = arguments[ProAdCore.keyAdLoaderId];
var proAdLoader = _findBwtAdLoader(adLoaderId);
if (proAdLoader == null) return;
var adEvent = arguments[ProAdCore.keyAdEvent];
if (adEvent == null) return;
var adId = arguments[ProAdCore.keyAdId];
var proAd = proAdLoader.findBwtAd(adId: adId);
if (proAd == null) return;
/// TODO 还有_eventOnAdRender、_eventOnAdReward没做
switch (adEvent) {
case _eventOnAdLoad:
var method = arguments["method"];
if (method == "loadNativeAd") {
var nativeData = Map<String, dynamic>.from(arguments['nativeData']);
//加载自渲染的onload 需要把自渲染数据抛给开发者
ProNativeAdData model = ProNativeAdData.fromMap(nativeData);
proAdLoader as ProNativeAdLoader;
proAdLoader.onNativeAdLoadCallback(proAd as ProNativeAd, model);
} else {
proAdLoader.onAdLoadCallback(proAd);
}
case _eventOnAdFailed:
proAdLoader.onAdFailedCallback(arguments[ProAdCore.keyAdMsg]);
case _eventOnAdMeasured:
if (proAdLoader is ProNativeExpressAdLoader &&
proAd is ProNativeExpressAd) {
double adWidth = arguments[ProAdCore.keyAdWidth] ?? 0;
double adHeight = arguments[ProAdCore.keyAdHeight] ?? 0;
proAdLoader.onAdMeasured(proAd, adWidth, adHeight);
}
break;
case _eventOnAdExpose:
proAdLoader.onAdExposeCallback(proAd);
case _eventOnAdClick:
proAdLoader.onAdClickCallback(proAd);
case _eventOnAdClose:
proAdLoader.onAdCloseCallback(proAd);
}
}