给后来者打个样 解决微信小程序无法保存图片的问题
默认是 import { saveImg,qrcodeCanvas } from '@/uni_modules/fan-canvas/plugins/utils';
调用 saveImg(imgUrl) 进行图片保存的
async onSaveImg() {
let imgUrl = "";
if (this.canvasImg) {
imgUrl = await this.canvasImg;
saveImg(imgUrl)
}
}
uni.saveImageToPhotosAlbum 本地调用的就是临时地址
但是 这里保存的方法显示调用了 uni.downloadFile 下载 再调用的uni.saveImageToPhotosAlbum 这就出现重大失误了。
我直接舍弃了/utils 保存的方法
async onSaveImg() {
let imgUrl = "";
if (this.canvasImg) {
imgUrl = await this.canvasImg;
await this.getWriteAuth();
uni.saveImageToPhotosAlbum({
filePath: imgUrl,
success: () => {
uni.hideLoading();
uni.showToast({
title: '保存成功'
});
},
fail(e) {
uni.hideLoading();
uni.showToast({
title: '下载失败',
icon: "none"
});
}
});
}
},
getWriteAuth() {
return new Promise(resolve => {
uni.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
resolve(true);
},
fail: () => {
uni.showModal({
title: '您已拒绝授权保存到相册',
content: '是否进入权限管理,调整授权?',
success: (res) => {
if (res.confirm) {
uni.openSetting({
success: function(
res) {}
});
} else if (res.cancel) {
return this.$toast({
title: '已取消!'
});
}
}
});
}
});
} else {
resolve(true);
}
}
});
});
}
完美解决 无法保存 当然了我这里仅仅只是使用小程序
随风 (作者)
早上起来测试了一下 代码有问题 自己改一下吧
2024-08-10 08:34