小程序
小游戏
企业微信
微信支付
扫描小程序码分享
https://developers.weixin.qq.com/miniprogram/dev/api/canvas/Canvas.createImage.html
模拟器正常,但是在真机上会出现首次加载正常,第二次则不触发image.onload函数的问题。
在手机控制台逐步打印log发现image.onload只会在首次触发,onerror未触发,表示图片地址没问题。
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
绘制完成后 手动将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
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这社区做的跟屎一样,只有机器人在重复请发下代码片段,有问题从来不解决
跟踪一下, 截至2024-09-25问题依旧, 将image.src 设成空字串至少在OffscreenCanvas上是无效的. 用 wx.getImageInfo() 可避开问题, 但调试可知实际上用这个方法每次调用都会去下载一次图片, 缓存实际上相当于失效了, 图片大的话影响挺明显的
可以结合wx.getImageInfo先下载图片 自己记录缓存地址,让img.src="本地缓存地址" 然后结合一楼的方案绘制完,把src置空,img.src = "" 应该就不需要每次从cdn下载了 小程序api真屎问题太多
图片地址加个随机数,可以暂时解决
官方抽个时间解决一下这个问题吧,有需要的,要不然每次都要从cdn拉图片,不如本地缓存的体验好
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
绘制完成后 手动将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
这社区做的跟屎一样,只有机器人在重复请发下代码片段,有问题从来不解决
跟踪一下, 截至2024-09-25问题依旧, 将image.src 设成空字串至少在OffscreenCanvas上是无效的. 用 wx.getImageInfo() 可避开问题, 但调试可知实际上用这个方法每次调用都会去下载一次图片, 缓存实际上相当于失效了, 图片大的话影响挺明显的
可以结合wx.getImageInfo先下载图片 自己记录缓存地址,让img.src="本地缓存地址" 然后结合一楼的方案绘制完,把src置空,img.src = "" 应该就不需要每次从cdn下载了 小程序api真屎问题太多
图片地址加个随机数,可以暂时解决
官方抽个时间解决一下这个问题吧,有需要的,要不然每次都要从cdn拉图片,不如本地缓存的体验好