在微信开发工具中创建两个页面,两个页面都只需要分别在页面中增加激励广告的定义、初始化、显示逻辑即可,其它第一个页面,在激励广告观看成功关闭后跳转到另外一个页面,并在另一个页面也点击观看激励广告,无法正常加载激励广告,并且返回前一页面后,前一页面也再无法正常加载激励广告。在微信开发工具中,问题必现。
有时报:can't invoke show () while other video-ad is showed
有时报:
还有其它一些莫名其妙的错误。但是不管什么问题,都是由于父子页面都存在激励视频导致且存在页面跳转导致的
// pages/index/index.js
// 在页面中定义激励视频广告
let videoAd = null;
Page({
data: {
},
onLoad() {
// 在页面onLoad回调事件中创建激励视频广告实例
if (wx.createRewardedVideoAd) {
videoAd = wx.createRewardedVideoAd({
adUnitId: 'adunit-36107ec1bb01edd3'
})
videoAd.onLoad(() => {})
videoAd.onError((err) => {})
videoAd.onClose((res) => {
if(res.isEnded){
//观看成功跳转到其它页面,此页面中也有观看激励广告的逻辑
wx.navigateTo({
url: '/pages/ad',
})
}
})
}
},
showAd(){
// 用户触发广告后,显示激励视频广告
if (videoAd) {
videoAd.show().catch(() => {
// 失败重试
videoAd.load()
.then(() => videoAd.show())
.catch(err => {
console.log('激励视频 广告显示失败')
})
})
}
},
})
很棒的解决方案👍
曾一度怀疑是videoAd定义位置不对,毕竟是定义在page外,这个应该是属于全局变量吧。所以也尝试过将videoAd定义到page内,做为页面周期变量,然后通过this去引用,不过问题依然。
有没有遇到类似问题的同学,你们是如何解决,父子页面都有激励广告的场景问题的,谢谢!