提早向用戶發起受權請求。調用後會馬上彈窗詢問用戶是否贊成受權小程序使用某項功能或獲取用戶的某些數據,但不會實際調用對應接口。若是用戶以前已經贊成受權,則不會出現彈窗,直接返回成功。html
scope | 對應接口 | 描述 |
---|---|---|
scope.userInfo | wx.getUserInfo | 用戶信息 |
scope.userLocation | wx.getLocation, wx.chooseLocation, wx.openLocation | 地理位置 |
scope.address | wx.chooseAddress | 通信地址 |
scope.invoiceTitle | wx.chooseInvoiceTitle | 發票擡頭 |
scope.invoice | wx.chooseInvoice | 獲取發票 |
scope.werun | wx.getWeRunData | 微信運動步數 |
scope.record | wx.startRecord | 錄音功能 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum | 保存到相冊 |
scope.camera |
|
攝像頭 |
注意:上述接口中,wx.authorize({scope: "scope.userInfo"}),沒法彈出受權窗口,使用 button 組件,並將 open-type 指定爲 getUserInfo 類型,獲取用戶基本信息。https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01小程序
wx.getSetting({ success (res) { console.log(res.authSetting) } })
若是用戶已經受權過 地理位置,上面代碼則會返回:"scope.userInfo": trueapi
// 能夠經過 wx.getSetting 先查詢一下用戶是否受權了 "scope.record" 這個 scope wx.getSetting({ success(res) { if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', success () { // 用戶已經贊成小程序使用錄音功能,後續調用 wx.startRecord 接口不會彈窗詢問 wx.startRecord() } }) } } })
onLoad: function (options) { // 只有在用戶已經受權後,才能在 onload 函數中獲取到用戶信息 // 因此,下面經過 wx.getSetting 檢查用戶是否已經受權, // 若是沒有受權,則中止執行 // 若是已經受權,則繼續執行success wx.getSetting({ success (res){ if (res.authSetting['scope.userInfo']) { // 已經受權,能夠直接調用 getUserInfo 獲取頭像暱稱 wx.getUserInfo({ success: function(res) { console.log(res.userInfo) } }) } } }) },
建議使用 button 組件,並將 open-type 指定爲 getUserInfo 類型,經過點擊事件獲取用戶基本信息。微信
代碼以下:ide
wxml:函數
<button open-type="getUserInfo" bindgetuserinfo='getUser'>獲取用戶信息(受權登陸)</button>
js:this
getUser(e) { console.log(e) wx.getUserInfo({ success: (res) => { console.log(res) this.setData({ userInfo: res.userInfo }); } }) }