初步确认为 setTimeout 在部分情况下不生效导致的问题
https://www.jianshu.com/p/fd61e8f4049e
问题背景
目前我们已经基本定位了安卓偶现不出关闭按钮的原因,是因为H5调用定时器在低端系统中存在问题,导致无法展示。
建议我们临时先针对安卓环境,默认直接展示关闭按钮(不遵循setting默认延迟1秒的控制),以缓解该问题。后续再调研技术上优化的可能性。
原因
setTimeout 在 android webview 中偶尔无法被成功调用, 而且一旦无法成功调用, 则在结束程序之前, 这个 webview 中的 setTimeout 会一直处于无法调用的状态
影响范围
Android 平台所有系统版本, 所有 SDK 版本, 所有 endcard 模板都有几率出现这个问题
解决办法
临时: 针对 Android 不再设置 timeout 定时器, 直接展示
feature-close-button:
git reset v2.2.5
git push origin HEAD --force
master:
git checkout master
git reset --hard feature-close-button
git push -f origin master
// H5 的 setTimeout 在 android 中存在偶尔无法被调用的问题(不出关闭按钮)
// 所以这里临时先针对安卓,默认直接展示关闭按钮(不遵循setting默认延迟1秒的控制),以缓解该问题
if (util.device().isAndroid) {
app.toggleCloseBtn()
return
}
长期: