dong瓜

导航

小程序保存图片到本地相册

  原理:在小程序中先要下载到图片,在打开本地相册后保存图片。

  注意:在小程序后台填写request合法域名和downloadFile合法域名(因为运用到了下载图片接口)

  前端代码如下(非原创):

 1   /**
 2    * 下载图标到相册
 3    */
 4   saveToPhone:function(e){
 5     //获取相册授权
 6     let imgSrc = this.data.qrcode_img  //要保存的图片url
 7     console.log(imgSrc)
 8     wx.showLoading({
 9       title: '保存中...'
10     })
11     wx.downloadFile({    //下载文件资源到本地
12       url: imgSrc,
13       success: function (res) {
14         console.log(res);
15         //图片保存到本地
16         wx.saveImageToPhotosAlbum({
17           filePath: res.tempFilePath,
18           success: function (data) {
19             console.log(data)
20             wx.hideLoading()
21             wx.showToast({
22               title: '保存成功',
23               icon: 'success',
24               duration: 2000
25             })
26           },
27           fail: function (err) {
28             console.log(err);
29             // $yjpToast.show({
30             //   text: `保存失败`
31             // })
32             if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail:auth denied") {
33               console.log("当初用户拒绝,再次发起授权")
34               wx.showModal({
35                 title: '提示',
36                 content: '需要您授权保存相册',
37                 showCancel: false,
38                 success: modalSuccess => {
39                   wx.openSetting({
40                     success(settingdata) {
41                       console.log("settingdata", settingdata)
42                       if (settingdata.authSetting['scope.writePhotosAlbum']) {
43                         wx.showModal({
44                           title: '提示',
45                           content: '获取权限成功,再次点击图片即可保存',
46                           showCancel: false,
47                         })
48                       } else {
49                         wx.showModal({
50                           title: '提示',
51                           content: '获取权限失败,将无法保存到相册哦~',
52                           showCancel: false,
53                         })
54                       }
55                     },
56                     fail(failData) {
57                       console.log("failData", failData)
58                     },
59                     complete(finishData) {
60                       console.log("finishData", finishData)
61                     }
62                   })
63                 }
64               })
65             }
66           },
67           complete(res) {
68             console.log(res);
69             wx.hideLoading()
70           }
71         })
72       }  
73     })
74   },

posted on 2020-02-20 17:32  dong瓜(TreeSky)  阅读(1070)  评论(0编辑  收藏  举报