<template>
<view class="current-view">
<button @click="chooseImg" type="default">选择图片</button>
<canvas ref="canvas" class="canvas-img" canvas-id="drawImg" :disable-scroll="false"></canvas>
<button type="primary" @click="exportImg">导出</button>
</view>
</template>
<script>
export default {
data() {
return {
canvas: null
}
},
methods: {
chooseImg() {
uni.chooseImage({
sizeType: 'compressed',
success: res => {
this.canvas.drawImage(res.tempFilePaths[0],0,0, 110,110);
this.canvas.draw();
}
})
},
exportImg() {
uni.canvasToTempFilePath({
canvasId: 'drawImg',
success: () => {
uni.showToast({
title: '导出成功',
icon: 'none'
})
},
fail: () => {
uni.showToast({
title: '导出失败',
icon: 'none'
})
}
})
}
},
mounted() {
this.canvas = uni.createCanvasContext('drawImg', this);
}
}
</script>
<style>
.current-view {
height: 100vh;
}
.canvas-img {
width: 200rpx;
height: 200rpx;
background-color: #007AFF;
}
</style>
- 发布:2020-09-16 11:56
- 更新:2021-12-07 16:10
- 阅读:1107
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.11
手机系统: iOS
手机系统版本号: iOS 13.4
手机厂商: 苹果
手机机型: iphone 7 plus
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
canvasToTempFilePath api, 现在调用之后没有任何的回调,没有任何的反应
canvasToTempFilePath api, 现在调用之后没有任何的回调,没有任何的反应
预期结果:
能正常回调
能正常回调
实际结果:
canvasToTempFilePath api, 现在调用之后没有任何的回调,没有任何的反应
canvasToTempFilePath api, 现在调用之后没有任何的回调,没有任何的反应
bug描述:
最新的2.8.11 xbuilder 更新了canvasToTempFilePath api, 现在调用之后没有任何的回调,没有任何的反应
旧版本的 2.8.8 xbuilder是可以正常获取的,我看了更新日志,2.8.11 更新了这个API,请检查下是否这次改动导致的问题,或者有什么解决方案现在
遇到相同问题
-
回复 DCloud_UNI_GSQ:
我的问题, 与 https://ask.dcloud.net.cn/question/133789这个是同一个问题, 在vue3, app端,自定义组件中, canvasToTempFilePath 不执行任何回调2021-12-16 15:22
LeoHuang (作者)
fail不触发,就调用之后就没反应了,从这个看来,我2.8.8是可以正常使用,2.8.11则不可以,所以我比较怀疑是这次更新导致的问题。另外,这边只是测试了iOS
2020-09-16 19:20
DCloud_UNI_GSQ
回复 LeoHuang: 刚测试了一下未复现问题,你新建一个工程调用看看能复现此问题吗?
2020-09-16 20:05
LeoHuang (作者)
回复 DCloud_UNI_GSQ: 今天才有空看下去贴示例代码,已经附上了,使用2.8.11 默认基座包进行打包然后运行,canvasToTempFilePath,无论成功失败都没有回调
2020-09-21 14:44
LeoHuang (作者)
回复 LeoHuang: 我现在重新下载了2.8.11,使用之前的自定义基座就不行,使用默认基座就可以。。。这真的太不友好了吧,升级要兼容下版本阿
2020-09-21 15:14
DCloud_UNI_GSQ
回复 LeoHuang: 原来是这样啊,每次更新后,自定义基座需要重新打包,理论上会弹出不兼容的提示,你应该是没看或者屏蔽了提示。
2020-09-21 15:34
LeoHuang (作者)
回复 DCloud_UNI_GSQ: 我看了更新日志是放在了uni-app插件一列的,不是APP插件更新的那一列才需要更新包么?另外,更新APP成本是很大的,建议像这种会导致热更新之后APP用不了的,最好是保留旧的方式,然后新开一个API,会让人更有选择权和显得专业
2020-09-21 15:41
DCloud_UNI_GSQ
回复 LeoHuang: 不是,无限制的兼容肯定是不可行的,后续会考虑小版本更新保持兼容的方案。
2020-09-21 18:48