收藏
回答

Canvas.createImage()如果图片有缓存则不会触发image.onload

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug Canvas.createImage() 微信安卓客户端 8.0.33.2320 2.30.2

https://developers.weixin.qq.com/miniprogram/dev/api/canvas/Canvas.createImage.html

模拟器正常,但是在真机上会出现首次加载正常,第二次则不触发image.onload函数的问题。

在手机控制台逐步打印log发现image.onload只会在首次触发,onerror未触发,表示图片地址没问题。


最后一次编辑于  2023-03-19
回答关注问题邀请回答
收藏

4 个回答

  • Alwin
    Alwin
    2023-10-30

    绘制完成后 手动将image的src属性置空。

    let img = this._elCanvas.createImage();
    img.onload=function (){
      _oContext.drawImage(img, 0, 0, _htOption.width, _htOption.height)
      success && success()
      //Fixed: android手机上只会触发一次onload
      img.src = ""
    }
    img.src = imagePath
    
    2023-10-30
    有用 2
    回复
  • null
    null
    2023-06-06

    这社区做的跟屎一样,只有机器人在重复请发下代码片段,有问题从来不解决

    2023-06-06
    有用 1
    回复 2
    • 123
      123
      2023-07-18
      有替换方案么?分享一下哈
      2023-07-18
      回复
    • 从君华
      从君华
      2023-07-28
      被你发现了
      2023-07-28
      回复
  • zxl
    zxl
    2023-08-29

    图片地址加个随机数,可以暂时解决

    2023-08-29
    有用
    回复
  • 123
    123
    2023-07-18

    官方抽个时间解决一下这个问题吧,有需要的,要不然每次都要从cdn拉图片,不如本地缓存的体验好

    2023-07-18
    有用
    回复
登录 后发表内容