<template>
<view class="content">
<ad-rewarded-video adpid="1723230599" :loadnext="true" v-slot:default="{loading, error}" @load="onadload" @close="onadclose" @error="onaderror">
<button :disabled="loading" :loading="loading">显示广告</button>
<view v-if="error">{{error}}</view>
</ad-rewarded-video>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
onadload(e) {
console.log('广告数据加载成功');
},
onadclose(e) {
const detail = e.detail
// 用户点击了【关闭广告】按钮
if (detail && detail.isEnded) {
// 正常播放结束
console.log("onadclose " + detail.isEnded);
} else {
// 播放中途退出
console.log("onadclose " + detail.isEnded);
}
},
onaderror(e) {
// 广告加载失败
console.log("onaderror: ", e.detail);
}
}
}
</script>
- 发布:2022-10-11 10:28
- 更新:2022-10-11 11:28
- 阅读:696
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 11
HBuilderX类型: 正式
HBuilderX版本号: 3.6.4
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: MATE 30 PRO
页面类型: nvue
vue版本: vue2
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
见描述
见描述
预期结果:
广告组件正常使用
广告组件正常使用
实际结果:
广告组件没法用
广告组件没法用
bug描述:
使用3.6.4离线打包基座集成激励视频功能,后台只选择了腾讯的广告,自定义基座也按照文档正常在AndroidManifest.xml, dcloud_properties.xml, libs文件内添加了需要的类库以及配置。
nvue页面 ad-rewarded-video 组件点击不展示广告。代码是你们官方提供的示例代码,具体内容如下,我替换了adpid为我自己的ID。
另外,换成官方提供的广告 API示例代码,在ad-rewarded-video组件对象中找不到load和show的方法。
使用uni.createRewardedVideoAd(options)可以正常创建并展示激励视频。但组件一直不好用。
j***@126.com (作者)
使用官方代码这种refs调用:
<template>
<view>
<ad-rewarded-video ref="adRewardedVideo" adpid="1507000689" :preload="false" :loadnext="false" :disabled="true"
v-slot:default="{loading, error}" @load="onadload" @close="onadclose" @error="onaderror">
<view class="ad-error" v-if="error">{{error}}</view>
</ad-rewarded-video>
<button type="primary" :disabled="isLoading" :loading="isLoading" @click="showAd">显示广告</button>
</view>
</template>
<script>
export default {
data() {
return {
isLoading: false
}
},
onReady() {
this.isLoading = true;
this.$refs.adRewardedVideo.load();
},
methods: {
showAd() {
if (this.isLoading) {
return
}
this.$refs.adRewardedVideo.show();
},
onadload(e) {
this.isLoading = false;
console.log('广告数据加载成功');
},
onadclose(e) {
const detail = e.detail
// 用户点击了【关闭广告】按钮
if (detail && detail.isEnded) {
// 正常播放结束
console.log("onClose " + detail.isEnded);
} else {
// 播放中途退出
console.log("onClose " + detail.isEnded);
}
//this.isLoading = true;
//this.$refs.adRewardedVideo.load();
},
onaderror(e) {
// 广告加载失败
console.log(e.detail);
this.isLoading = false;
}
}
}
</script>
<style>
.ad-error {
color: orangered;
margin-top: 5px;
}
</style>
2022-10-11 13:29
DCloud_uni-ad_HDX
回复 j***@126.com: 代码看上去没有问题,提供一个简单工程吧,或者先别用离线打包,新建个空项目代码贴进去看卡是否正常,如果仍然不行,联系技术支持QQ: 3212223575
2022-10-12 11:21
j***@126.com (作者)
回复 DCloud_uni-ad_HDX: 感谢官方反馈,此问题已经解决,非官方原因。
2022-10-12 14:33
1***@qq.com
回复 j***@126.com: 大哥 同样的问题 你是怎么解决的呀 能说一下吗
2022-12-31 14:37
5***@qq.com
回复 j***@126.com: 请问怎么解决的,急急急~
2023-08-25 18:58