备注
zip包模板 (hybird/nightmare):
1. tpl1
2. ~~tpl2~~ 虽然有 trigger('showBanner'), 但是 tpl2.js 中没有 showBanner 的逻辑
3. ~~tpl3~~ 模板6因为是全屏播放的原生视频, 实现的关闭按钮等空间也都是原生的, 所以需要SDK修复
4. ~~tpl2-blurry~~ 模板基础逻辑来源于tpl2, 也没有 showBanner 的逻辑
5. ~~endv4jump~~ endcard 模板不需要增加这个逻辑
6. kiloo
通用模板 (hybird/rv):
tpl1,2,3,noadsv1等页面需要修改不
提测地址:
测试范围
Android, iOS
PS: iOS SDK 在展示 cta banner 时有相关判断, 所以 iOS 目前没有这个黑屏的问题, 但从逻辑上来讲无论 SDK 有没有兜底, H5 都应该在 rv 播放完成之后, 不再尝试调用 rv 阶段的 cta banner, 所以这次的功能改动 iOS 和 Android 都需要测试
背景:
SDK 为了提高播放模板页(rv)的资源加载效率, 在 rv 切换到 endcard 之后, 并不会销毁 rv 的 webview 实例, 虽然 rv 的原生视频播放被停止, 但被隐藏的 rv 页的脚本逻辑依然是运行状态, 这其中就包括 "cta banner 自动展示" 的倒计时逻辑;
复现方式:
配置: 当 RewardSetting 接口中返回的 "interactive_type(cta banner 显示时间)" 大于 "video_skip_time(关闭按钮显示时间)" 时;
示例:
"video_interactive_type": 10, "video_skip_time": 5,
操作: 如果用户在 rv 的关闭按钮出现之后, cta banner 出现之前, 立即点击关闭按钮, 进入 endcard 页;
结果: 这时被隐藏的 rv 页中 cta banner 倒计时是依然存在的, 倒计时结束时无论当前是在 rv 还是 endcard 阶段, H5 都始终会调用原生的展示 cta banner 逻辑, 这时正在展示的 endcard 页就会被 cta banner 和一个全屏的黑色背景替换掉, 用户的直观感受就是 endcard 黑屏了并且底部展示了一个 banner
修复思路:
- 当用户点击关闭按钮关闭 rv 页, 在倒计时结束时, cta banner 始终会被阻止
- 当用户点击关闭按钮, 出现弹窗但选择继续播放, cta banner 会正常展示
- 当用户点击关闭按钮, 出现弹窗但这时用户不作任何后续操作, cta banner 依然会正常展示