微信小程序 用戶信息·授權(quán)

2022-05-11 15:42 更新

授權(quán)

部分接口需要經(jīng)過用戶授權(quán)同意才能調(diào)用。我們把這些接口按使用范圍分成多個(gè) scope ,用戶選擇對(duì) scope 來進(jìn)行授權(quán),當(dāng)授權(quán)給一個(gè) scope 之后,其對(duì)應(yīng)的所有接口都可以直接使用。

此類接口調(diào)用時(shí):

  • 如果用戶未接受或拒絕過此權(quán)限,會(huì)彈窗詢問用戶,用戶點(diǎn)擊同意后方可調(diào)用接口;
  • 如果用戶已授權(quán),可以直接調(diào)用接口;
  • 如果用戶已拒絕授權(quán),則不會(huì)出現(xiàn)彈窗,而是直接進(jìn)入接口 fail 回調(diào)。請開發(fā)者兼容用戶拒絕授權(quán)的場景。

獲取用戶授權(quán)設(shè)置

開發(fā)者可以使用 wx.getSetting 獲取用戶當(dāng)前的授權(quán)狀態(tài)。

打開設(shè)置界面

用戶可以在小程序設(shè)置界面(「右上角」 - 「關(guān)于」 - 「右上角」 - 「設(shè)置」)中控制對(duì)該小程序的授權(quán)狀態(tài)。

開發(fā)者可以調(diào)用 wx.openSetting 打開設(shè)置界面,引導(dǎo)用戶開啟授權(quán)。

提前發(fā)起授權(quán)請求

開發(fā)者可以使用 wx.authorize 在調(diào)用需授權(quán) API 之前,提前向用戶發(fā)起授權(quán)請求。

scope 列表

scope 對(duì)應(yīng)接口 描述
scope.userInfo wx.getUserInfo 用戶信息
scope.userLocation wx.getLocation, wx.chooseLocation 地理位置
scope.userLocationBackground wx.startLocationUpdateBackground 后臺(tái)定位
scope.address wx.chooseAddress 通訊地址
scope.invoiceTitle wx.chooseInvoiceTitle 發(fā)票抬頭
scope.invoice wx.chooseInvoice 獲取發(fā)票
scope.werun wx.getWeRunData 微信運(yùn)動(dòng)步數(shù)
scope.record wx.startRecord 錄音功能
scope.writePhotosAlbum wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum 保存到相冊
scope.camera camera 組件 攝像頭

授權(quán)有效期

一旦用戶明確同意或拒絕過授權(quán),其授權(quán)關(guān)系會(huì)記錄在后臺(tái),直到用戶主動(dòng)刪除小程序。

最佳實(shí)踐

在真正需要使用授權(quán)接口時(shí),才向用戶發(fā)起授權(quán)申請,并在授權(quán)申請中說明清楚要使用該功能的理由。

注意事項(xiàng)

  1. wx.authorize({scope: "scope.userInfo"}),不會(huì)彈出授權(quán)窗口,請使用 <button open-type="getUserInfo"/>
  2. 需要授權(quán) scope.userLocation、scope.userLocationBackground 時(shí)必須配置地理位置用途說明。

后臺(tái)定位

與其它類型授權(quán)不同的是,scope.userLocationBackground 不會(huì)彈窗提醒用戶。需要用戶在設(shè)置頁中,主動(dòng)將“位置信息”選項(xiàng)設(shè)置為“使用小程序期間和離開小程序后”。開發(fā)者可以通過調(diào)用wx.openSetting,打開設(shè)置頁。

background-location


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)