做过抖音小程序开发的同学应该都遇到过,激励视频广告的onClose监听调用,每加载一次,会累加一次,导致的结果就是,打开几次广告,就会执行几次激励奖励。

官方有对应解决的接口方法offClose,但是示例代码就那么几行,太简单了,一开始还真没搞清楚,也找了开发社区里别人的解决方案,但是感觉都写的不是很清晰,最终还是自己研究了下,测试通过。以下是部分示例代码:

let dyVideoAd = tt.createRewardedVideoAd({
adUnitId: “****”,
});

let closeFunc = res=>{
if (res.isEnded) {
//执行奖励的逻辑
console.log(“观看了”, res.count, “个视频”);

} else {
uni.showToast({
title:”未观看完视频!”
})
console.log(“未观看完视频”);
}

//这里所有逻辑执行完成之后一定要解绑close的监听
dyVideoAd.offClose(closeFunc)
}

//这里执行onClose的监听

dyVideoAd.onClose(closeFunc);