首先,抱歉,我不知道这个贴适不适合发在这里,因为这只是一个普通的网页,不是小程序也不是小游戏。
----------- 分割线 ------------
微信h5,疯狂点击切换操作,直接把微信玩卡死。
这个问题我已经很久之前就遇过,最近又有几个玩家反馈,经过我们自己测试,偶尔复现,的确如此。
最关键的是,卡死以后,强退微信可以,但是再次打开此网页的时候,会特别特别卡,甚至有时候 js 加载都会加载不了。
必须重启iphone,再打开微信,一切就恢复ok。
这个情况出现是有概率性的,目前用户报错的机型,主要是iphone6, 6plus , 6s, 6s plus 。我们使用iphone 6s plus测试,复现过。
发一个我们目前测试的链接:http://m.primedu.cn/wx-game/linklinklook/index.php (手机微信环境下,请来回快速切换点击1,和2 两个图片)
我怀疑过是不是声音导致的,接着,我做了一下测试。
去掉< audio > 标签以后,无声状态,确实没发生干死微信的情况,但是不敢说100%一定就是这个原因,因为本身出现干死微信的情况就是偶发的。
加上< audio > 标签以后,有声状态,来回多次切换,确实会发生干死微信的情况。
另外测试发现,只要卡死过一次,后面再次进入页面,一定还会卡死。
只有必须强制再次重启手机才能避免下次再次进入不会干死微信。
这个问题纠结了我很久,麻烦官方团队如果有空,帮忙看看,谢谢了~~~
感谢反馈,我们查一下。
刚刚又测试了一波,好像是这个this._domAudio.load()方法有问题(之前每次点击都会load一次)。
现在使用:
this._domAudio.pause();
this._domAudio.currentTime = 0;
this._domAudio.play();
这样解决了一个问题,播放声音的时候,没有滞后很严重了。
但是会不会干死微信,暂时不清楚,没有 ios 11.2.6 系统的机器了。昨天同事的机器升级到ios11.3了。
非常感谢官方团队重视这个问题,非常非常的期待你们的结果。
刚刚又测试了一波,新的发现:
如果使用传统的dom标签的网页,<audio >并不会卡死整个微信。
而我上面那个页面是基于<canvas >开发的页面,快速来回播放<audio > 就是会干死整个微信。
前面发现,只要卡死过一次,后面强退微信(不强重启手机),再次进入页面,一定还会卡死微信。
刚刚又测试,把所有的< audio > 标签去掉,再次进入页面,没有强制重启手机的情形下,也不会卡死,看样子,真的是< audio >的问题啊。