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) { //結束回調 } }) } }) },
代碼注釋很清晰了