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