收藏
回答

同样的一套代码,为什么仅体验版能拉起激励广告呢?

仅上线上版能复现问题,但无法调试;体验版不能复现问题,但可调试

头疼啊

 // 加载广告组件-广告页面
  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','失败')
    }
  })
}


回答关注问题邀请回答
收藏

1 个回答

  • 冷却的火焰
    冷却的火焰
    发表于小程序端
    2025-12-01

    有结果吗

    2025-12-01
    有用
    回复
登录 后发表内容