仅上线上版能复现问题,但无法调试;体验版不能复现问题,但可调试
头疼啊
// 加载广告组件-广告页面
onLoad(){
if(!this.data.ad){
this.setData({
ad:wx.createRewardedVideoAd({adUnitId: 'adunit-91de9d3c36dc21bf'})
})
}
this.setData({
like_total:wx.getStorageSync('like_total'),
like_use:wx.getStorageSync('like_use'),
})
},
like(){
app.add_like(this.data.ad,(status, message)=>{
if(status=='success'){
this.update_data()
}
})
}
// app.js
// 拉取激励广告
add_like(rewardedVideoAd,callback){
// 关键修复:先移除所有已绑定的事件,避免重复绑定
rewardedVideoAd.offLoad(); // 移除加载事件监听
rewardedVideoAd.offError(); // 移除错误事件监听
rewardedVideoAd.offClose(); // 移除关闭事件监听(重点解决重复回调问题)
rewardedVideoAd.show().catch(() => {
rewardedVideoAd.load()
.then(() => rewardedVideoAd.show())
.catch(err => {
callback('error','广告显示失败')
console.log('显示失败')
})
})
rewardedVideoAd.onError(res=>{
wx.showToast({ title: '拉起失败', icon: 'error' });
callback('error','拉起失败')
console.log('拉起失败')
})
rewardedVideoAd.onClose((res) => {
if(res && res.isEnded){
// 加总计,加可用
callback('success','成功')
}else{
callback('error','失败')
}
})
}

有结果吗