小程序保存圖片到本地


  saveTap: function(){
    var self =this
    wx.getSetting({
      success(res) {
        console.log(res)
        //判斷是否已授權
        if (!res.authSetting['scope.writePhotosAlbum']) {
          wx.authorize({
            scope: 'scope.writePhotosAlbum',
            success() {
              //授權成功
              self.savePhoto()
            },
            fail : function(){
              //未授權
              self.imageErrorAuth()
            }
          })
        }else{
          //已授權直接保存圖片
          self.savePhoto()
        }
      },
      
      
    })
  },

  

imageErrorAuth() {
    //打開設置必須在按鈕點擊事件中所以搞一個modal
    wx.showModal({
      title: '提示',
      content: '需要您授權保存至相冊',
      showCancel: false,
      success: modalSuccess => {
        wx.openSetting({
          success(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)
          }
        })
      }
    })
  },

  

savePhoto: function(){
    var imgSrc = app.globalData.httpHeader+'qr_code.png'
    wx.downloadFile({
      url: imgSrc,
      success: function (res) {
        //圖片保存到本地
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: function (data) {
            console.log('保存成功')
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000
            })
          },
          fail: function (err) {
            console.log('保存失敗');
            console.log(err)
            if (err.errMsg == "saveImageToPhotosAlbum:fail auth deny") {
              //在這種邏輯下這種錯誤不會出現
              console.log("未授權")
  
            } else if (err.errMsg == 'saveImageToPhotosAlbum:fail cancel'){
              //用戶點擊了取消
              console.log('用戶點擊了取消')
            }
          },
          complete(res) {
            //結束回調
          }
        })
      }
    })
  },

  代碼注釋很清晰了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM