小程序最近没有发布,但是从上周五开始陆陆续续有用户反馈有问题,经过统计发现,都是安卓用户,各品牌型号都有,而且是使用的微信8.0.37。
经过测试,安卓手机,微信版本8.0.34正常,但是升级到8.0.37后就存在问题。
后进一步发现是小程序基础库2.32.1的问题 ,连续执行setTimeout存在较大误差导致的,该版本在微信开发者工具的模拟器以及真机调试都正常,但是在手机上运行可以看出明显误差。
例如运行以下代码,每隔15毫秒执行定时器,小程序基础库2.32.0和2.32.1有较大的误差
function sleep(ms = 0, txt) {
return new Promise((resolve) => {
let t = Date.now();
setTimeout(
function () {
resolve();
console.log(txt, Date.now() - t);
},
ms
);
});
}
for (let i = 0; i < 100; i++) {
await sleep(15, `定时器 第${i}次`);
}
不要在 promise 里面写呢
你好,麻烦复现一次,并且在手机微信上传日志。
手机微信日志上传步骤: 我->设置->帮助与反馈右上角有个上报日志的入口,选择复现日期进行上传
上传完成麻烦提供一下 【微信号】【时间点】方便协助排查。
同样遇到这个问题,目前我这边解决方案是判断安卓端情况时进行参数纠偏
同样的程序在IOS就正常,在安卓上就呈现的不一样。