在开发微信小程序的时候,经常能看到小程序里面有下载按钮,如何将小程序中的图片下载到手机相册中那,下面给大家说一下怎么做,代码如何去写。
一、到微信小程序后台开启“用户隐私保护指引”
1.进入小程序后台,侧拉拉到“设置”这一项,再找到“服务内容声明”,更新“用户隐私保护”,如下图所示:
2.按照如下所示的指引填写即可
注意: 如果不更新隐私保护,是无法获取到存储权限的,这个必须要开启才行。
二、代码实现
//点击下载
const clickDownload = async () => {
try {
uni.showLoading({
title: "下载中...",
mask: true
})
let res = await downPushData();
if(res.errCode != 0) throw res;
// #ifdef MP || APP
uni.getImageInfo({
src: crtWallInfo.value.picurl,
success: function(res) {
var path = res.path;
uni.saveImageToPhotosAlbum({
filePath: path,
success(res) {
uni.hideLoading();
uni.showToast({
title: '保存成功,可去相册查看',
icon: "none",
duration:2000
})
},
fail(err) {
uni.hideLoading();
if(err.errMsg == 'saveImageToPhotosAlbum:fail cancel'){
uni.showToast({
title: '保存失败,请重新点击下载',
icon: "none"
})
return;
}
uni.showModal({
title: '提示',
content: '需要您授权保存相册',
showCancel: false,
success:res=>{
if(res.confirm){
uni.openSetting({
success(settingdata) {
if (settingdata.authSetting['scope.writePhotosAlbum']) {
uni.showToast({
title:'获取权限成功',
icon:"none"
})
}else{
uni.showToast({
title:'获取权限失败',
icon:"none"
})
}
}
})
}
}
})
},
complete(err) {
}
})
}
})
// #endif
// #ifdef H5
//调用预览图片的方法
uni.previewImage({
urls: [crtWallInfo.value.picurl],
current: 0, //点击图片传过来的下标
success: (res) => {
uni.showToast({
title: '请长按保存',
icon: "none",
duration: 2000
})
}
})
// #endif
} catch (err) {
console.log(err);
uni.hideLoading();
}
}