weapp-qrcode icon indicating copy to clipboard operation
weapp-qrcode copied to clipboard

安卓手机会出现白色白色方块导致二维码错误

Open Albuseven opened this issue 5 years ago • 7 comments

安卓手机会出现白色方块导致二维码错误 微信图片_20190414182906

手机型号:小米MIX2 系统: MIUI 10.2 安卓: 8.0.0

Albuseven avatar Apr 14 '19 10:04 Albuseven

我也遇到了,但是保存到本地的二维码图片却是正常的。

Strange, very strange.

tomfriwel avatar Apr 14 '19 10:04 tomfriwel

可能跟canvas有关,后来换成image标签显示暂存图片勉强可以用了

Albuseven avatar Apr 15 '19 02:04 Albuseven

换成Image也不行

wanyang avatar May 13 '19 07:05 wanyang

起个timeout 延迟重新调用makeCode就好了

wanyang avatar May 13 '19 07:05 wanyang

用的是wepy框架开发的微信微信小程序。在drawQrcode的回调里面callback去导出图片,用的是wx.canvasToTempFilePath导出图片,在部分安卓手机上显示的二维码扫不出内容,好像是导出的二维码缺少了一部分。 在苹果手机上面目前是正常的。

zouqiaoling avatar May 31 '19 03:05 zouqiaoling

目前的解决办法:

目前测试了一下,是qrcode.makeCode回调里调用qrcode.exportImage导致的,如果要避免的话可以不要在makeCode回调里使用qrcode.exportImage,单独调用qrcode.exportImage

如果非得调用的话,可以用setTimeout延时调用,如:

// 生成图片,绘制完成后调用回调
qrcode.makeCode(z.data.text, () => {
  // 回调
  setTimeout(() => {
    qrcode.exportImage(function (path) {
      z.setData({
        imgsrc: path
      })
    })
  }, 300)
})

tomfriwel avatar May 31 '19 05:05 tomfriwel

我目前是这样去实现的。 drawQrcode({ width: 200, height: 200, canvasId: "mycanvas", text: codeContent, callback: function(e) { //生成完图片,回调 wx.canvasToTempFilePath({ x: 0, y: 0, width: 200, height: 200, destWidth: 200, destHeight: 200, canvasId: "mycanvas", success: function(res) { let path = res.tempFilePath }, complete: function() {

              }
            })
          }
        })

zouqiaoling avatar May 31 '19 05:05 zouqiaoling