模拟器:真机:
测试机型:华为P30,华为P40pro,华为mate20
canvas在模拟器能生效,安卓真机不渲染,IOS没问题
将requestAnimationFrame换为模拟的方法,安卓真机就能渲染了(具体看代码片段),判断是requestAnimationFrame失效导致的
三月初的时候,测试同学(华为P30)出现了这个问题且能稳定复现,但其他手机都复现不了,也就判断为手机的问题了
但今天发现能测的安卓机型都存在这个问题,怀疑是官方偷偷灰度更新了什么功能给影响到了,希望能够尽快解决一下,谢谢
在没修复之前可以自己写requestAnimationFrame实现吧,相近功能也行
let lastTime = 0
requestAnimationFrame = function (callback) {
var currTime = new Date().getTime()
var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
var id = setTimeout(function () {
callback(currTime + timeToCall)
}, timeToCall)
lastTime = currTime + timeToCall
return id
}
cancelAnimationFrame = function (id) {
clearTimeout(id)
}
遇到了差不多的问题,线上的小程序受到严重影响,安卓调用canvas.cancelAnimationFrame就会crash。希望官方可以尽快解决,谢谢!