问题:这个问题是在上一个解决方案中衍生出来的问题,详情见:
《微信小程序 解决canvas展示二维码层级太高的问题》
https://blog.csdn.net/weixin_38847104/article/details/82499729
解决思路:由于画二维码用的库一直没有更新,调用的是 wx.createContext(),
wx.drawCanvas({
canvasId: canvas,
actions: ctx.getActions()
});
这两个接口来绘制画布,其实看官方文档就能发现,wx.createContext (不推荐使用),所以推荐使用wx.createCanvasContext(canvasId, this),这个的draw方法是带有回调函数的,这样我们也不用settimeout了,直接在回调成功的情况下,再调用wx.canvasToTempFilePath就可以了。
js文件:
const _this = this;
QR.qrApi.draw(text, 'qr-code', width, height, '', () => {
wx.canvasToTempFilePath({
canvasId: 'qr-code',
success(res) {
_this.setData({
QRImgUrl: res.tempFilePath
})