canvas 是微信小程序里的原生组件,相关属性及注意事项可参考小程序官方文档 。一般生成分享图片需要显示文字和相应的图片,在结合不同位置和不同大小的需求形成特定样式的图片。
canvas简单理解成一张可以自定义大小(有上限)的画布,在画布上可以写字,画图形,放置图片。一般可以用来动态生成截图,方便用户保存和转发。
官方资料:
https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.html
这一报错在微信开发者论坛中被多次提及,最多被提到的就是这一方法。
wx.draw()是一个异步执行的api,canvasToTempFilePath需要在其回调中执行。延迟 200毫秒 一般就可以解决这个问题。
当这个api只执行一次时延迟200毫秒其实无所谓,但是多次调用时,这个延迟也浪费了不少时间。对于性能强大的手机,这也是一种浪费,一般只有性能较弱的安卓机才会出现这个问题。所以我更建议大家使用下面一个。
canvasToTempFilePath本身也是异步api,有错误回调可以使用。
我的项目中需要绘制的图片大小为180*180px,耗时基本在50-100ms左右。报错一次以后canvas基本也就准备好了,一般不会错第三遍。
题外话:这一个api的耗时与画布大小密切相关,也建议大家绘制图片时一定要控制好canvas画布大小。比方说,绘制200*200的图片,canvas要大小一致。尤其是图片数量比较大时,在模拟器上体现不出差别,但是手机上影响很大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)