- 当前 Bug 的表现(可附上截图)
canvasToTempFilePath 在 iphone X 和 iPad Pro 真机上失败,报错canvasToTempFilePath:fail no image(工具内正常)。
在 iPhone 7 上正常。
在 iPhone 6 Plus 上直接连带微信本身一起崩溃 (可能是canvas 本身造成,canvas 尺寸为650rpx x 1000rpx )。
- 预期表现
- 复现路径
填充背景
再填充一个长方形
第2步的长方形描边
wx.downloadFile 下载2张 PNG 图(不大),其中1张是小程序码
连带第4步的两张图,再加上3张本地图片,总共5张图,ctx.drawImage
画两个 text (一共不超过100个字符)
ctx.draw(), draw的回调里调用 wx.canvasToTempFilePath
- 提供一个最简复现 Demo
解决问题了,原来是 canvas 的分辨率设太大了,在我问题里的分辨率其实 x 10 倍。
后来改为 x4 就OK了。
但是奇怪的是 iPhone 7 可以正常渲染,性能更好的 iPhone X 和 iPad Pro 竟然跑不动
一种情况一般都是canvas还没绘画完就调用wx.canvasToTempFilePath接口造成的,可以在ctx.draw()回调里设置延时一下调用这个接口wx.canvasToTempFilePath,或者搞一个点击保存的按钮在调用这个接口是最保险的。