uni-app 移动端 uni.canvasToTempFilePath() 不会进入回调
uni-app 移动端 uni.canvasToTempFilePath() 不会进入回调
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | win7 |
HBuilderX | 正式 |
HBuilderX版本 | 3.2.16 |
手机系统 | Android |
手机版本号 | Android 8.1 |
手机厂商 | 魅族 |
手机机型 | 16th |
页面类型 | nvue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: 170,
height: 300,
destWidth: 170,
destHeight: 300,
canvasId: id,
success(res) {
console.log(res.tempFilePath)
},
fail(res) {
console.log(res)
},
complete(res){
console.log(res)
}
})
```
### 预期结果:
和网页端一样
### 实际结果:
所有回调都不会进入
### bug描述:
uni.canvasToTempFilePath()在网页端可以正常进入回调,但是在移动端所有回调都不会进入

### 相关链接:
- [https://ask.dcloud.net.cn/question/139232](https://ask.dcloud.net.cn/question/139232)
更多关于uni-app 移动端 uni.canvasToTempFilePath() 不会进入回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
nvue 暂不支持此API
nvue 如何使用 Canvas 请参考 https://github.com/dcloudio/NvueCanvasDemo
更多关于uni-app 移动端 uni.canvasToTempFilePath() 不会进入回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在nvue页面中使用uni.canvasToTempFilePath()确实存在一些特殊注意事项。根据您描述的情况,可能是以下几个原因导致的:
-
nvue页面中canvas组件需要使用weex渲染模式,确保canvas的type属性设置为"2d"或"web"
-
在Android平台上,确保canvas已经完成渲染后再调用转换方法,可以尝试加setTimeout延迟执行
-
检查canvasId是否正确绑定到canvas组件上,nvue中可能需要使用ref而非id
-
确认canvas的宽高设置有效,建议使用px单位
建议修改代码如下:
setTimeout(() => {
uni.canvasToTempFilePath({
canvasId: 'yourCanvasId', // 确保与canvas组件的id一致
success(res) {
console.log('转换成功', res.tempFilePath);
},
fail(err) {
console.log('转换失败', err);
}
}, this);
}, 300);