W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
部分接口需要經(jīng)過(guò)用戶授權(quán)同意才能調(diào)用。我們把這些接口按使用范圍分成多個(gè) scope
,用戶選擇對(duì) scope
來(lái)進(jìn)行授權(quán),當(dāng)授權(quán)給一個(gè) scope
之后,其對(duì)應(yīng)的所有接口都可以直接使用。
第一次使用某個(gè) scope
下的接口時(shí),會(huì)彈窗詢問(wèn)用戶,“XXX申請(qǐng)獲得以下權(quán)限:(權(quán)限描述)”。如果用戶點(diǎn)擊允許,則可獲得此 scope
的接口權(quán)限。并且接口調(diào)用成功,否則接口調(diào)用失敗。
wx.login({
success: function () {
wx.getUserInfo()
}
})
如果需要提前發(fā)起授權(quán)獲得用戶同意,則可調(diào)用 wx.authorize() 來(lái)提前發(fā)起授權(quán)。
wx.authorize({
scope: 'scope.record'
})
用戶有可能拒絕小程序發(fā)起的授權(quán)申請(qǐng),需要處理這種情況。
wx.login({
success: function () {
wx.getUserInfo({
fail: function (res) {
// iOS 和 Android 對(duì)于拒絕授權(quán)的回調(diào) errMsg 沒(méi)有統(tǒng)一,需要做一下兼容處理
if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('auth denied') > -1 ) {
// 處理用戶拒絕授權(quán)的情況
}
}
})
}
})
wx.authorize({
scope: 'scope.record',
fail: function (res) {
// iOS 和 Android 對(duì)于拒絕授權(quán)的回調(diào) errMsg 沒(méi)有統(tǒng)一,需要做一下兼容處理
if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('auth denied') > -1 ) {
// 處理用戶拒絕授權(quán)的情況
}
}
})
通過(guò)調(diào)用 wx.getSetting() 接口可以獲取用戶當(dāng)前的授權(quán)處理信息。
wx.getSetting({
success: function (res) {
var authSetting = res.authSetting
if (authSetting['scope.userInfo'] === true) {
// 用戶已授權(quán),可以直接調(diào)用相關(guān) API
} else if (authSetting['scope.userInfo'] === false){
// 用戶已拒絕授權(quán),再調(diào)用相關(guān) API 或者 wx.authorize 會(huì)失敗,需要引導(dǎo)用戶到設(shè)置頁(yè)面打開(kāi)授權(quán)開(kāi)關(guān)
} else {
// 未詢問(wèn)過(guò)用戶授權(quán),調(diào)用相關(guān) API 或者 wx.authorize 會(huì)彈窗詢問(wèn)用戶
}
}
})
如果用戶拒絕過(guò)某個(gè) scope
的授權(quán)申請(qǐng),則后續(xù)這個(gè) scope
下的相關(guān) API 調(diào)用都會(huì)直接失敗,用 wx.authorize() 申請(qǐng)此 scope
也會(huì)直接失敗,而不會(huì)彈窗詢問(wèn)用戶。這種情況下,需要引導(dǎo)用戶主動(dòng)到設(shè)置頁(yè)面打開(kāi)相應(yīng)的 scope
權(quán)限。
授權(quán)頁(yè)面的進(jìn)入路徑為:右上角菜單->關(guān)于(小程序名字)->右上角菜單->設(shè)置
注意:只有申請(qǐng)過(guò)授權(quán)的 scope
會(huì)出現(xiàn)在設(shè)置頁(yè)面。
如果用戶在小程序列表中刪除了當(dāng)前小程序,則所有允許過(guò)和拒絕過(guò)的授權(quán)記錄都會(huì)被清空。
scope | 對(duì)應(yīng) API | 描述 |
---|---|---|
scope.userInfo | wx.getUserInfo() | 用戶信息 |
scope.userLocation | wx.getLocation() | 地理位置 |
scope.werun | wx.getWeRunData() | 微信運(yùn)動(dòng)步數(shù) |
scope.record | wx.startRecord()、RecorderManager.start() | 錄音功能 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum() | 保存到相冊(cè) |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: