收藏
回答

华为手机描画canvas时画不出来

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug canvas 客户端 7.0.4 2.7.1

小程序页面存在canvas,

当在其他页面跳转到canvas页面时,使用wx.navigateTo跳转过去,canvas未描画,锁屏再解锁就能显示出来(onShow事件为空)


附带问题:在我实际的工程里,即使不是其他页面刚跳转过来,也会有偶尔描画不出来的问题,同样是锁屏再解锁就能显示出来


延时1s再去draw 可以解决


已测试复现手机:

华为mate20,华为P20,荣耀V9


已测试不复现手机:

小米9SE,iPhoneX,iPhoneXsMax,iPhone8Plus,iPhone7,魅族16,小米mix2s,oppo r17 ,vivo x23, nexus6


其他人同样的问题:

1, https://developers.weixin.qq.com/community/develop/doc/000e28d218cd609fe298608e452800?highline=%E5%8D%8E%E4%B8%BA%E6%89%8B%E6%9C%BA%E6%8F%8F%E7%94%BBcanvas%E6%97%B6%E7%94%BB%E4%B8%8D%E5%87%BA%E6%9D%A5

2, https://developers.weixin.qq.com/community/develop/doc/000006645a84a811aa78c413d56c00?_at=1561964448196

3,https://developers.weixin.qq.com/community/develop/doc/000c6445450d081222c89fbc252000


最后一次编辑于  2019-07-01
回答关注问题邀请回答
收藏

4 个回答

  •  趣做局剧本杀
    趣做局剧本杀
    2019-07-01

    写法问题

    var ctx = wx.createCanvasContext('data');

    ctx.fillRect(10, 10, 1000, 100);

    ctx.draw();

    放到drawCanvas() 别指向到this里


    2019-07-01
    有用 1
    回复 2
    • 关耳白告予
      关耳白告予
      2019-07-01

      请问原因是什么?为什么不能指向this

      2019-07-01
      回复
    • 关耳白告予
      关耳白告予
      2019-07-01

      另外,我试了,没用。

      还有,demo是demo。正式项目怎么可能这么简单的结构呢。canvas铁定是要全局的,不可能每个放在某个函数里面let一下

      2019-07-01
      回复
  • 万达
    万达
    2019-08-13

    同样的问题,更坑的是空心矩形,无解context.strokeRect(x, y, w, h),只能用4条线代替


    同样的问题,更坑的是空心矩形,无解context.strokeRect(x, y, w, h),只能用4条线代替

    找到了一个解决方案 ,画完以后其实已经画上去了,只是华为手机上的小程序canvas因为某种原因没显示出来,改变下canvas大小就好了,我给宽度+1 然后在-1 就好了


    reSize () {
    var self = this
       var query = wx.createSelectorQuery().in(self)
    query.select('#drawPanel').boundingClientRect(function (size) {
    console.log('reSize===>>>', size)
    self.setData({
    height: size.height + 1 + 'px',
               width: size.width + 1 + 'px'
           })
    console.log('self.data.height', self.data.height)
    console.log('self.data.width', self.data.width)
    }).exec()
    }





    2019-08-13
    有用
    回复 1
    • 关耳白告予
      关耳白告予
      2019-08-26
      是画上去了。,但是你这个方案是不是会有一点点闪烁一下啊?
      2019-08-26
      回复
  • 钱小样
    钱小样
    2019-07-30

    请问这个问题有解决办法吗,这边碰到了同样的问题

    2019-07-30
    有用
    回复 2
    • 关耳白告予
      关耳白告予
      2019-08-08
      判断HUAWEI 或者 HONER 直接延迟2s,再去draw。没办法,官方不理采
      2019-08-08
      回复
    • 万达
      万达
      2019-08-13
      同样的问题,更坑的是空心矩形,无解context.strokeRect(x, y, w, h),只能用4条线代替
      2019-08-13
      回复
  • afa
    afa
    2019-07-04

    碰到了同样的问题

    2019-07-04
    有用
    回复
登录 后发表内容