利用wxml2canvas报错fail canvas is empty
时间: 2023-12-09 15:34:15 浏览: 149
利用wxml2canvas生成canvas图片时,有时会出现“fail canvas is empty”的错误。这通常是由于canvas还没有完全渲染完成,就开始生成图片导致的。解决方法如下:
1.将wxml2canvas的生成图片代码放在页面渲染完成的回调函数中,确保canvas已经完全渲染完成再生成图片。
2.使用setTimeout()函数将生成图片的代码延迟执行,等待canvas完全渲染完成后再生成图片。
以下是第一种方法的示例代码:
```javascript
import Wxml2Canvas from 'wxml2canvas';
Page({
onReady: function () {
// 页面渲染完成后执行生成图片的代码
const wxml = '<view>这是一段文字</view>';
const canvasId = 'share';
const ctx = wx.createCanvasContext(canvasId, this);
Wxml2Canvas(ctx, wxml, 0, 0, 300, 100, () => {
wx.canvasToTempFilePath({
canvasId: canvasId,
success: function (res) {
console.log(res.tempFilePath);
},
fail: function (res) {
console.log(res);
}
}, this);
});
}
});
```
阅读全文