微信版本号:7.0.14(iOS 12.4.7)
小程序基础库版本号:2.11.0;2.12.0都是同样的表现
————————————————————
问题描述:
一个页面A内含一个画布和若干按钮,点击按钮画布会重绘部分内容(先clearRect,再moveTo lineTo stroke等等)
小程序启动后,从首页首次navigateTo页面A,点击按钮,画布重绘都正常,但是,back回首页,再次点进页面A,画布重绘若干次之后,会发生画布区域变为空白,不能绘制上任何内容,此时查看vConsole内log,没有任何错误信息。为<canvas> 加上binderror也打印不出任何信息。
如果再次back会主页,在进入页面A,情况依旧,开始几次能正常重绘,若干次重绘后,大概率画布变空白,少数时候还会导致微信整个闪退!
-----------------------------------------------------------------
我尝试简化问题,做了一个空白主页,放置一个navigator链接到页面B,页面B是微信官方的canvas type=“2d”的demo页面(9个绿色小球+一个黄色小车动画),发现情况依旧:首次进入页面B,一切正常,back回首页,再次进入页面B,大概率动画运行3~10秒后,画布变为空白。。。
如果注释掉redraw()函数里的clearRect,则上述异常变成了画布内容卡死,不再刷新。总之,就是再次进入页面B之后,若干次绘画后,画布重绘失效了
——————————————————————
PS:在开发者工具、Android手机,以上情况没有发生。
老兄 我遇到和你一样一样的问题。我和你说下我的解决思路。其实不是ios和安卓的问题。是微信版本的问题。你只要检测到是微信旧版本,就用旧canvas,新的就用2d。 这个阀值我试出来就是,2.11.2 刚好对应你的ios 7.0.14.
问题很明显啊,希望能有进一步的反馈。
你好,麻烦提供出现问题的具体机型、能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
在以上分享的新建的极简代码片段上,问题依旧,back回主页,再次进入画布页面,问题就出现了。