1. 程式人生 > >小程式儲存圖片到相簿

小程式儲存圖片到相簿

// 儲存海報
  SaveImg:function() {
    wx.showLoading({
      title: '儲存中...'
    })
    wx.downloadFile({
      url: 'http://www.abc.com/img.png',
      success: function (res) {
        //圖片儲存到本地
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: function (data) {
            wx.hideLoading()
            wx.showModal({
              title: '提示',
              content: '您的推廣海報已存入手機相簿,趕快分享給好友吧',
              showCancel:false,
            })
          },
          fail: function (err) {
            if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
              // 這邊微信做過調整,必須要在按鈕中觸發,因此需要在彈框回撥中進行呼叫
              wx.showModal({
                title: '提示',
                content: '需要您授權儲存相簿',
                showCancel: false,
                success:modalSuccess=>{
                  wx.openSetting({
                    success(settingdata) {
                      console.log("settingdata", settingdata)
                      if (settingdata.authSetting['scope.writePhotosAlbum']) {
                        wx.showModal({
                          title: '提示',
                          content: '獲取許可權成功,再次點選圖片即可儲存',
                          showCancel: false,
                        })
                      } else {
                        wx.showModal({
                          title: '提示',
                          content: '獲取許可權失敗,將無法儲存到相簿哦~',
                          showCancel: false,
                        })
                      }
                    },
                    fail(failData) {
                      console.log("failData",failData)
                    },
                    complete(finishData) {
                      console.log("finishData", finishData)
                    }
                  })
                }
              })
            }
          },
          complete(res) {
            wx.hideLoading()
          }
        })
      }
    })
  }