收藏
回答

CanvasContext.draw回调在IOS上不执行

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug CanvasContext.draw 客户端 6.7.2 2.0.9
that.contex.draw(false, () => {
                console.log('完成绘制')
})


开发工具和Android手机统统正常,唯独在IOS上不能执行回调内容,应该是个BUG。


暂时使用setTimeout在绘制后几秒执行想实现的操作替代。

最后一次编辑于  2018-09-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

17 个回答

  • 卢霄霄
    卢霄霄
    2018-09-17

    你有毒吧。。我的都还正常的呢。。

    2018-09-17
    赞同
    回复 12
    • 再见,电脑崽
      再见,电脑崽
      2018-09-17

      注意版本号。

      2018-09-17
      赞同
      回复
    • 卢霄霄
      卢霄霄
      2018-09-17回复再见,电脑崽

      试了下,还是对的呢。。

      2018-09-17
      赞同
      回复
    • 再见,电脑崽
      再见,电脑崽
      2018-09-17回复卢霄霄

      难不成IOS版本还有影响

      2018-09-17
      赞同
      回复
    • 卢霄霄
      卢霄霄
      2018-09-18回复再见,电脑崽

      哈哈哈。。回头看了下。。我线上版本没使用回调了。。我加个再试试

      2018-09-18
      赞同
      回复
    • 卢霄霄
      卢霄霄
      2018-09-18回复再见,电脑崽

      报告。。我试了。。我这边也没有执行回调,2.3.0 也没执行,模拟器上都没执行

      2018-09-18
      赞同
      回复
    查看更多(7)
  • nickname
    nickname
    2018-09-17

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2018-09-17
    赞同
    回复 1
    • 再见,电脑崽
      再见,电脑崽
      2018-09-18

      wechatide://minicode/WgVISvmp7A2C

      bug能重现,不过我好像看明白了点什么,就是我的canvas先是隐藏状态display:none,然后我想在回调里等画完了再显示。这一切在android和开发工具上正常,就是到IOS上不可行了。现在的办法是在执行draw之前先设置canvas的display为block,可见状态。

      2018-09-18
      赞同
      回复
  • sanford🐶~
    sanford🐶~
    2018-09-24

    canvasContext使用时需要canvas在DOM中的位置信息,绘制前先让canvas组件初始化一下就可以啦。

    2018-09-24
    赞同
    回复 1
    • 城主
      城主
      01-28

      如何初始化呢?我設置了canvas的寬高,并且在setData中的回調中執行draw,draw前等待了300ms依舊不行,ip6sp復現頻率極高

      01-28
      赞同
      回复