1.问题起因
在一部分性能不强的安卓机上经常会出现这个问题
2.解决方案
当失败时重新调用canvasToTempFilePath方法,直至绘制成功
/* ct.draw的第二个参数是绘制完成之后的回调函数, 但是一般需要使用定时器的方式(draw本身是异步的), 设置时间1s是比较安全的数值, 可以保证绘制完成一些不算复杂的画布 */ ct.draw(false,setTimeout(()=>{ this.getTempFile((res)=>{ // TODO }) },1000)); /* 调用失败重复调用 */ function getTempFile(args,callback){ wx.canvasToTempFilePath({ ...args, success:(res)=>{ callback(res) }, fail:(err)=>{ // 在这里也可以对err进行处理,根据err的类型来决定是否重复执行 this.getTempFile(callback) } },this) },