当使用 wx:if 控制新版 canvas 显隐时(https://developers.weixin.qq.com/community/develop/doc/00020a02c2c040114d19a398f5b001?highLine=canvas),会导致微信 App 闪退。iOS 版本 13.1.2
<canvas wx: if = "{{show}}" type= "2d" id= "canvas" style= "width: 300px; height: 300px;" ></canvas> <button bindtap= "showHide" >显示/隐藏</button> |
视频链接:https://share.icloud.com/photos/0t16pVlvARSgj0vp5yfoyow8Q
这个问题已知了,我们下个版本会修复。这里主要是因为通过 wx:if 控制 canvas 的时候会销毁画布,但是 requestAnimationFrame 仍然在运行,绘制到一块已经销毁的画布上导致闪退。你可以:
在隐藏画布之前手动做一下 cancelRequestAnimation 把循环先停止。
是只使用这个代码片段可以复现问题吗?这边测试未复现问题,出现问题的具体机型是什么?
提供一下出现问题的微信号,出现问题的时间点(精确到分钟)
canvas,你可以采用定位的方式让它隐藏,
例如设置canvas的position:fixed;top:100rpx;left:100rpx;
想隐藏时,改为top:-2000rpx;left:-2000rpx;