这里兼容了ios系统,因为ios无法直接使用openSetting进行设置,所以提示让用户手动去设置就行
function saveImg(imgPath){
// 检查用户是否已经授权了相册写入权限
uni.getSetting({
success: function (res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
// 如果用户未授权,主动请求授权
uni.authorize({
scope: 'scope.writePhotosAlbum',
message: '我们需要您的授权以保存图片到相册',
success: function () {
uni.showToast({
title: '授权成功,请重新保存',
icon: 'none',
})
},
fail: function () {
// 如果用户拒绝授权,可以提示用户去设置中开启权限
if (uni.getSystemInfoSync().platform === 'ios') {
uni.showToast({
title:"请前往设置页面手动打开相册访问权限",
icon:"none",
});
}else{
uni.openSetting();
}
}
});
} else {
// 如果用户已授权,直接进行需要权限的操作
uni.downloadFile({
url: imgPath, // 图片的网络地址
success: (res) => {
if (res.statusCode === 200) {
// 临时文件路径
const tempFilePath = res.tempFilePath;
// 接下来可以将这个tempFilePath保存到相册
// 保存图片到相册
uni.saveImageToPhotosAlbum({
filePath:tempFilePath,
success: function () {
uni.showToast({
title:"图片保存成功",
icon:"none",
});
},
fail: function (err) {
uni.showToast({
title:"图片保存失败,请重试",
icon:"none",
});
}
});
}
},
fail: (err) => {
console.error('下载图片失败:', err);
}
});
}
},
fail: function () {
// 获取权限设置失败,可以提示用户去设置中开启权限
if (uni.getSystemInfoSync().platform === 'ios') {
uni.showToast({
title:"请前往设置页面手动打开相册访问权限",
icon:"none",
});
}else{
uni.openSetting();
}
}
});
}