激励视频广告组件微信小程序端的preload属性无效
激励视频广告组件微信小程序端的preload属性无效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
### 示例代码:
```javascript
<ad-rewarded-video ref="adRewardedVideo" :adpid="ad_id" :preload="false" :url-callback="ad_callback" [@load](/user/load)="load" [@close](/user/close)="close_ad" [@error](/user/error)="load_error"></ad-rewarded-video>
操作步骤:
直接在微信小程序调用ad-rewarded-video
组件,设置:preload="false"
在[@load](/user/load)
事件内监听即可出现
预期结果:
正常关闭后不应该自动加载广告
实际结果:
自动加载广告
bug描述:
由于默认是页面就绪后加载广告数据,如果该广告长时间未操作(大约30分钟)会引起报错情况,为了解决这个问题,关闭了自动加载广告,当用户点击按钮后才开始加载,加载成功后[@load](/user/load)
事件内调用show()
自动播放,APP端一切正常,微信小程序端无效,仍然自动加载广告,然后进入[@load](/user/load)
事件内调用show()
自动播放,也就是说当打开页面后就加载广告并自动播放,太坑爹了。。。解决了一个问题又引出了另一个问题。
preload 受微信的限制目前设置为 false 无效,这个影响你的功能吗?每次调用show就行了
有办法避免这个问题,就是无法和APP统一,而且文档也没有说明,所以以为是bug,如果不是bug麻烦在文档上面上面说明一下。另外麻烦看看这个问题修复了吗?最近没有打包,我也不知道问题还在不在 https://ask.dcloud.net.cn/question/206735
根据描述,微信小程序端的ad-rewarded-video
组件确实存在preload
属性失效的问题。这是一个已知的平台差异性问题。
在微信小程序环境中,激励视频广告的预加载行为是由微信原生SDK控制的,uni-app的preload
属性可能无法完全覆盖原生行为。建议改用以下方案:
- 使用条件渲染控制广告组件初始化时机:
<ad-rewarded-video v-if="showAd" :adpid="ad_id" @load="onAdLoad"/>
- 在需要时再初始化组件:
methods: {
showAd() {
this.showAd = true
},
onAdLoad() {
this.$refs.adRewardedVideo.show()
}
}