激励视频广告组件微信小程序端的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()自动播放,也就是说当打开页面后就加载广告并自动播放,太坑爹了。。。解决了一个问题又引出了另一个问题。


4 回复

preload 受微信的限制目前设置为 false 无效,这个影响你的功能吗?每次调用show就行了


有办法避免这个问题,就是无法和APP统一,而且文档也没有说明,所以以为是bug,如果不是bug麻烦在文档上面上面说明一下。另外麻烦看看这个问题修复了吗?最近没有打包,我也不知道问题还在不在 https://ask.dcloud.net.cn/question/206735

回复 追梦随想: 感谢反馈 我们更新下文档,上面提到的另一个问题已转发相关人员

根据描述,微信小程序端的ad-rewarded-video组件确实存在preload属性失效的问题。这是一个已知的平台差异性问题。

在微信小程序环境中,激励视频广告的预加载行为是由微信原生SDK控制的,uni-app的preload属性可能无法完全覆盖原生行为。建议改用以下方案:

  1. 使用条件渲染控制广告组件初始化时机:
<ad-rewarded-video v-if="showAd" :adpid="ad_id" @load="onAdLoad"/>
  1. 在需要时再初始化组件:
methods: {
  showAd() {
    this.showAd = true
  },
  onAdLoad() {
    this.$refs.adRewardedVideo.show()
  }
}
回到顶部