收藏
回答

再次进入含画布页面,执行多次绘图后,画布可能变为空白,绘图失效?

微信版本号: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手机,以上情况没有发生。

回答关注问题邀请回答
收藏

3 个回答

  • 好炫
    好炫
    2020-09-27

    老兄 我遇到和你一样一样的问题。我和你说下我的解决思路。其实不是ios和安卓的问题。是微信版本的问题。你只要检测到是微信旧版本,就用旧canvas,新的就用2d。 这个阀值我试出来就是,2.11.2 刚好对应你的ios 7.0.14.

    2020-09-27
    有用
    回复 1
    • 好炫
      好炫
      2020-09-27
      正如官方所说新版会好。但是,你懂的。又不是所有人都升级。
      2020-09-27
      回复
  • 赖伟
    赖伟
    2020-08-03

    问题很明显啊,希望能有进一步的反馈。

    2020-08-03
    有用
    回复
  • 小白
    小白
    2020-07-28

    你好,麻烦提供出现问题的具体机型、能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-07-28
    有用
    回复 3
    • 赖伟
      赖伟
      2020-07-29
      https://developers.weixin.qq.com/s/fghYycmf7Dj2
      2020-07-29
      回复
    • 赖伟
      赖伟
      2020-07-29
      手机型号:iPhone 6 plus;微信版本号:7.0.14(iOS 12.4.7);
      在以上分享的新建的极简代码片段上,问题依旧,back回主页,再次进入画布页面,问题就出现了。
      2020-07-29
      回复
    • 小白
      小白
      2020-08-18回复赖伟
      请更新微信版本到7.0.15再试试,我这边没有复现了
      2020-08-18
      回复
登录 后发表内容
问题标签