保存图片到本地相册,需要用户允许相册权限;但是有时客户手滑或者是特别原因点击了拒绝授权,我们需要打开权限列表,让客户手动打开此项权限;
需要用到的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 }) } } }) } } }) } }) } }) },