讓我先大小3聲“哈哈哈”酷斃了
寫小程序時,用到授權時,有些用戶可能好奇心重,總會出其不意的亂點,若是程序員沒有考慮到,那這時BUG就出現了~~作為前端開發的我心累呀~
下面舉一個例子: 保存圖片到相冊時,點擊按鈕“保存”,之后會現出來一個微信小程序自帶的彈窗----詢問用戶是否要保存。你說既然先點了保存那就是確定要保存了嘛。但是彈窗中有一個選項“拒絕”,我X,一大批臟話脫口而出!!!!!!!!!!!!
正常情況下,點了“拒絕”后,完了,完了,完了!!!!彈窗關閉,之后若是再次點擊“保存”按鈕,沒反應了。好焦急,好難受。
這時,重新授權就需要用到了:
wx.openSetting({ })
TMMD,我以為這樣就ok了。哪知道我又遇到了問題。重新授權代碼完成后,開發工具上是能夠重授權了,哪知道我手機真機測試時,一點反應都沒有,而且還沒有報錯。把我那個焦急的呀。怎么辦呢,不修復了?就這樣?這怎么可能,若真這樣,客戶發現問題后不就會天天呼我,修復BUG。那咋行。
現在我把我的代碼弄下來,記錄起來,可能會幫到跟我遇到同樣問題的小同伴。也能幫我做個記錄。
1.開發工具上的代碼(ok)
wx.saveImageToPhotosAlbum({
filePath: canvasImg,
success: function (res) {
wx.showToast({
title: '保存成功',
image: "../images/nologo.png",
duration: 1500,
})
},
fail: function (res) {
console.log(res)
if (res.errMsg ===
"saveImageToPhotosAlbum:fail auth deny") {
console.log("打開設置窗口");
wx.openSetting({
success(settingdata) {
console.log(settingdata)
if (settingdata.authSetting["scope.writePhotosAlbum"]) {
console.log("獲取權限成功,再次點擊圖片保存到相冊")
} else {
console.log("獲取權限失敗")
}
}
})
}
})
2.下面的代碼是真機上成功運行的(ok)
wx.saveImageToPhotosAlbum({
filePath: canvasImg,
success: function (res) {
wx.showToast({
title: '保存成功',
image: "../images/nologo.png",
duration: 1500,
})
},
fail: function (res) {
console.log(res)
if (res.errMsg ===
"saveImageToPhotosAlbum:fail:auth denied") {
console.log("打開設置窗口");
wx.openSetting({
success(settingdata) {
console.log(settingdata)
if (settingdata.authSetting["scope.writePhotosAlbum"]) {
console.log("獲取權限成功,再次點擊圖片保存到相冊")
} else {
console.log("獲取權限失敗")
}
}
})
}
}
})