uni-app -- 小程序添加激励视频(字节-抖音小程序)

1. 遇到的问题

1.激励视频广告是由客户端原生渲染,覆盖在整个小程序页面区域之上,目前支持竖屏展示。
2.全局只有一个RewarededVideoAd 实例,重复创建不会覆盖
3.激励视频广告展示的时候用户不能操作小程序
4.开发者工具上暂不支持调试该 API,请直接在真机上进行调试
5. 2.1.0 引入 .show().catch() 捕获不到错误说明

关于上述问题描述,我只掉入了第二个坑、第五个坑。

1.1关于第五个坑,是遇到这样一个报错

在这里插入图片描述
搜索一下搜到了这篇文章:
http://forum.microapp.bytedance.com/mini-app/posts/61cab927a4981ffe87921316

但是于我来说还是没有解决问题。当我尝试换个抖音账号进行观看激励视频时,就直接没有这个问题展示了。第二天我再使用前一天看激励视频报这个错的账号时,也没这个问题了。是不是说看的次数多了,账号就有限制了???

1.2 全局只有一个RewarededVideoAd 实例

关于这个我刚开始并没有看到。我有两个页面需要展示激励视频广告,但是在第二个页面展示时发现关闭激励视频时的回调并没有按照预期中的执行。
后翻阅文档才发现这一句话全局只有一个RewarededVideoAd 实例.然后将该实例提升到了App.vue里进行创建,于是再也没遇到该问题

2.创建RewarededVideoAd 实例

2.1 创建全局唯一实例

App.vue

<script>
	export default {
		onLaunch: function() {
			// 创建激励视频
			this.craeteVideo()
		},
		methods: {
			craeteVideo() {
				let _this = this;
				let rewardedVideoAd = tt.createRewardedVideoAd({
					adUnitId: '写入自己的广告id'
				})

				rewardedVideoAd.onLoad(() => {
					console.log('拉取激励广告成功')
				})
				
				rewardedVideoAd.onError((err) => {
					console.log('拉取激励广告失败')
				})
				
				this.set_video(rewardedVideoAd); // 我将创建好的实例保存在vuex里,以便所有页面获取并使用
				
				rewardedVideoAd.onClose((res) => {
					if (res && res.isEnded) {
						console.log('激励广告全部加载完成')
					} else {
						console.log('激励广告中途强制关闭')
					}
				})
			},
		}
	}
</script>

2.2 需要的页面进行展示

在需要展示激励视频的页面:
***.vue

<script>
	methods:{	
		// 展示激励视频
		showVideo() {
			// 使用vuex里的实例
			if (this.videoAd) {
				this.videoAd.show(() => {
					// 到这里代表激励视频展示成功
				}
			}
		}
	}
</script>


3. 关于1.1遇到的问题

在这里插入图片描述
在这里插入图片描述
所以该种情况,并不是很严重的错误,这是属于正常情况!!!
可根据实际情况予以提示,如:

// ...
rewardedVideoAd.onError((err) => {
	console.log('拉取激励广告失败', err)
	if (err.errCode == 1004) {
		uni.showToast({
			icon: 'none',
			title: '请稍后再试~'
		})
		console.log('正常情况,需要兼容')
	}
})
// ...

版权声明:本文为Dark_programmer原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。