對(duì)于授權(quán)有三種情況:
1.用戶第一次使用,彈出授權(quán)。
2.用戶已經(jīng)拒絕過(guò)授權(quán)。
3.用戶已經(jīng)授權(quán)過(guò)。
正確的邏輯處理是:
(1)獲取用戶授權(quán)的信息
(2)判斷scope.writePhotosAlbum的值,若為true則已經(jīng)授權(quán),直接調(diào)用保存到相冊(cè)的方法;若為undefined,則說(shuō)明是第一次授權(quán),需要調(diào)用wx.authorize彈出授權(quán)框,授權(quán)框只在第一次詢問(wèn)時(shí)彈出,如果用戶已經(jīng)拒絕了,則不會(huì)彈出。因此我們需要對(duì)undefined情況進(jìn)行判斷。若為false,則已經(jīng)拒絕了授權(quán),這時(shí)候我們需要調(diào)用wx.openSetting引導(dǎo)用戶打開(kāi)設(shè)置,保存到相冊(cè),wx.openSetting設(shè)置界面只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過(guò)的權(quán)限,正因?yàn)閣x.authorize和wx.openSetting的使用場(chǎng)景限制,我們才需要考慮這兩種case一起使用才行,缺一不可。
wx.getSetting({ success(res) { if (res.authSetting['scope.writePhotosAlbum']) { _this.saveImg(); } else if (res.authSetting['scope.writePhotosAlbum'] === undefined) { wx.authorize({ scope: 'scope.writePhotosAlbum', success() { _this.saveImg(); }, fail(){ wx.showToast({ title: '您沒(méi)有授權(quán),無(wú)法保存到相冊(cè)', icon: 'none' }) } }) }else { wx.openSetting({ success(res) { if (res.authSetting['scope.writePhotosAlbum']) { _this.saveImg(); }else{ wx.showToast({ title:'您沒(méi)有授權(quán),無(wú)法保存到相冊(cè)', icon:'none' }) _this.setData({ isSaving: false }); } } }) } } })
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)