应该是图片第一次设置缓存了,之后再次设置就不会调用 onload 事件。
Canvas.createImage 重新设置相同图片路径,onload不重新执行const saveImage = () => { const canvas = wx.createOffscreenCanvas({ type: '2d', width: 500, height: 500 }) const ctx = canvas.getContext('2d') const image = canvas.createImage() await new Promise(resolve => { image.src = "图片url 或 base64" image.onload = resolve image.onerror = function (err) { logd('err', err) resolve() } }) wx.canvasToTempFilePath({ canvas: canvas, success: (res) => { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success() { wx.showToast({ title: '保存成功!', icon: 'success', duration: 2000//持续的时间 }) } }) } }) } 小程序中,保存第一次能够成功,再次保存同一张图片时,不执行 image.onload 和 image.onerror 事件,image.src 设置url链接拼接时间戳可以正常使用,但 image.src 设置 base64 时,还是有问题。
07-18