微信小程序保存圖片沒有權限跳到授權頁面


保存圖片

方法一:wx.downloadFile + wx.canvasToTempFilePath +
wx.saveImageToPhotosAlbum;
方法二:wx.getImageInfo +
wx.canvasToTempFilePath + wx.saveImageToPhotosAlbum

wx.downloadFile:下載文件資源到本地,僅支持https的鏈接地址。成功的回調函數會返回一個臨時的文件地址,即:res.tempFilePath。更多參數見官方文檔DownloadTask wx.downloadFile(Object object);
wx.getImageInfo:獲取圖片信息,成功的回調函數中會圖片的本地路徑,即:res.path。更多參數見官方文檔wx.getImageInfo(Object object);
wx.canvasToTempFilePath:把當前畫布指定區域的內容導出生成指定大小的圖片。成功的回調中會返回圖片的臨時地址,即:res.tempFilePath。更多參數見官方文檔wx.canvasToTempFilePath(Object object, Object this;
wx.saveImageToPhotosAlbum:保存上一步的圖片到系統相冊,成功時會直接保存圖片到相冊中。更多參數見官方文檔wx.saveImageToPhotosAlbum(Object object)

當用戶點擊上面的保存海報按鈕后,若用戶是第一次使用,此時會有一個彈窗提醒用戶授權。如果用戶點擊了拒絕,無論再怎么點保存海報的按鈕(清空緩存可繞過),都不會有彈窗提醒且會直接進入fail中,所以必須要調用wx.getSetting這個API,判斷res.authSetting的授權結果中是否有scope.writePhotosAlbum。有且值為true則表示同意保存到相冊,否則就要再次提醒用戶開啟權限。

 

//保存二維碼
  qrcodesaveimg(){
    var that = this
    Promise.all([that.downLoadImage(that.data.posterInfo.qrcode)]).then((res)=>{
      console.log(that.data,"圖片路徑",res[0])
      let imgurl = res[0]
      wx.getSetting({
        success (res) {
          console.log(res.authSetting['scope.writePhotosAlbum'],res)
          if(res.authSetting['scope.writePhotosAlbum'] ||res.authSetting['scope.writePhotosAlbum']==undefined){
            console.log("1111",res[0])
            wx.saveImageToPhotosAlbum({
              filePath: imgurl,
              success: (e) => {
                wx.showToast({
                  title: '保存成功',
                  duration: 2000
                });
              }, fail: (e) => {
                console.log("失敗",e)
              }
            })
          }else{
            wx.openSetting({
              success(res) {}
            })
          }
        }
      })
    })
  },

 

//下載圖片返回本地連接
downLoadImage(url) {
    return new Promise((resolve, reject) => {
      wx.downloadFile({
        url: url,
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.tempFilePath)
          }
        }
      });
    })
  },

 

 


免責聲明!

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



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