保存图片到本地相册,需要用户允许相册权限;但是有时客户手滑或者是特别原因点击了拒绝授权,我们需要打开权限列表,让客户手动打开此项权限;
需要用到的API
- wx.getImageInfo();
- wx.saveImageToPhotosAlbum();
- wx.getSetting();
- wx.openSetting();
vi设计http://www.maiqicn.com 办公资源网站大全https://www.wode007.com
代码如下:
wxml
<button type="" class="white btna" bindtap="downImg" >\'{{info.inviter_img}}\'>保存图片</button>
js
downImg(e) {
var img_url = e.currentTarget.dataset.url;
// 首先获取图片信息,得到图片的路径;
wx.getImageInfo({
src: img_url,
success(res) {
// 然后使用saveImageToPhotosAlbum保存图片到本地,到这会询问用户是否打开相册权限;如果他允许即保存成功;
wx.saveImageToPhotosAlbum({
filePath: res.path,
success(e) {
wx.showToast({
title: \'保存成功\',
icon: \'none\',
duration: 2000
})
},
fail(e) {
// 如果他不允许,图片保存失败,我们使用getSetting获取用户授权信息,如果用户没有允许writePhotosAlbum权限,
// 使用openSetting打开授权页,让客户手动打开授权,即可成功保存图片;
wx.getSetting({
success(res) {
if (!res.authSetting["scope.writePhotosAlbum"]) {
wx.showModal({
title: \'警告\',
content: \'请打开相册权限,否则无法保存图片到相册\',
success(res) {
if (res.confirm) {
wx.openSetting({
success(res) {
console.log(res)
}
})
} else if (res.cancel) {
wx.showToast({
title: \'取消授权\',
icon: "none",
duration: 2000
})
}
}
})
}
}
})
}
})
}
})
},
请发表评论