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