再开发者工具中和体验版本将图片保存到手机相册没有问题,但是在发布到线上就会保存失败,什么原因?
代码如下:
const photoAuthorize = () => {
uni.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
uni.authorize({
scope: 'scope.writePhotosAlbum',
success(res) {
drawImageAndText()
},
fail() {
uni.showModal({
title: '提示',
content: '需要打开授权设置吗?',
success(result) {
if (result.confirm) {
uni.openSetting({
success(settingRes) {
uni.showToast({
title: 'openSetting,进入了成功函数',
duration: 2000
});
if (settingRes.authSetting['scope.writePhotosAlbum']) {
// 用户打开了授权设置,可以继续保存图片
drawImageAndText()
}
}
});
}
},
fail(res) {
uni.showToast({
title: '获取权限--失败',
duration: 2000
});
}
})
}
})
} else {
drawImageAndText()
}
}
})
}
const drawImageAndText = () => {
save.value = true
uni.showLoading({ title: '正在保存图片...' });
poster.value.canvasToTempFilePathSync({
fileType: 'jpg',
quality: 1,
success: (res) => {
if (save.value){ // 应该是插件bug 做个变量开关
save.value = false
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success() {
uni.showToast({ title: '保存成功', icon: 'success' });
},
fail() {
uni.showToast({ title: '保存失败', icon: 'none' });
},
complete: (res) => {uni.hideLoading();},
});
}
},
fail(e) {
uni.hideLoading();
console.log('???????????',e)
}
})
};
3 个回复
高支支
同问,我就不明白为啥不行 真机调试的话 IOS可以安卓不行 是不是uniapp官方最近大改动后出bug 了
云开发接单 - 专攻云开发,有云开发的小单子可找我
有没有在小程序后台更新用户隐私协议把对应的权限添加上去了
z***@163.com (作者)
感谢,就是这个问题
2023-11-14 14:31
DCloud_heavensoft
这是微信小程序官方策略的调整