收藏
回答

小程序canvas绘制图片,图片缓存在本地,图片onload没有执行?

我们在最近的数据监控中发现了异常的行为,而且仅仅只有安卓微信版本号8.0.23偶尔发生这个问题

异常设备信息:

手机:HONOR-RVL-AL0-9, 系统版本:Android 9, 微信版本号:8.0.23,微信SDK版本号:2.24.7

手机:Xiaomi-M2011K2C, 系统版本:Android 11, 微信版本号:8.0.23,微信SDK版本号:2.24.7

==========================================================================================

问题如下:我们会将一个网络图片缓存到 wx.env.USER_DATA_PATH 中,在后续的某个流程中,在 canvas 上绘制这个图片,具体调用如下

const img = canvas.createImage();
img.src = that.data.currentCardFilePath;
img.onload = () => {
  console.log('图片加载成功');
  ctx.drawImage(img, 0, 0, t.width, t.height);
  ctx.restore()
}
img.onerror = () => {
  console.log('绘制发生异常');
}


在上面两个设备信息上,回调走的是onerror,没有走onload。

同时我也测试了其他的方式,img.src 可以是一个网络地址,可以是一个base64编码的图片,使用这样的方式是完全没问题的,都是可以走 onoload 方法。

仅仅是无法绘制到canvas上,根据图片路径是可以保存到本地的。

我们测试到只发生在8.0.23版本上,更新到8.0.24版本号时就正常了。

还希望官方能尽快修复这个问题,使得在8.0.23版本上可以正常调用。

========================

代码片段如下:

https://developers.weixin.qq.com/s/MvpdpQmY7VAd

设备和版本号:

HONOR-RVL-AL09,Android 9,微信8.0.23,微信SDK:2.24.7

目前测试的是,一定会复现。


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

1 个回答

  • Demons
    Demons
    2022-07-11

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2022-07-11
    有用
    回复 2
    • 布鲁斯-林
      布鲁斯-林
      2022-07-18
      代码片段已经上传了,麻烦请尽快解决,多谢啦~
      2022-07-18
      回复
    • 布鲁斯-林
      布鲁斯-林
      2022-07-25
      您好,你们那边解决了吗?我们这边着急着呢
      2022-07-25
      回复
登录 后发表内容