用户授权

部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope , 用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。

部分接口需要获得用户授权同意后才能调用。此类接口调用时:

  • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;

  • 如果用户已授权,可以直接调用接口;

  • 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。

获取用户授权设置

开发者可以使用 wx.getSetting() 获取用户当前的授权状态。

打开设置界面

用户可以在小程序设置界面(「右上角」 - 「关于」 - 「右上角」 - 「设置」)中控制对该小程序的授权状态。

开发者可以调用 wx.openSetting() 打开设置界面,引导用户开启授权。

提前发起授权请求

开发者可以使用 wx.authorize() 在调用需授权 API 之前,提前向用户发起授权请求。

scope 列表

scope

对应接口

描述

scope.userInfo

wx.getUserInfo()

用户信息

scope.userLocation

wx.getLocation(), wx.chooseLocation()

地理位置

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

<camera /> 组件

摄像头

注意

  1. wx.authorize`({scope: " :data:`scope.userInfo()”}),不会弹出授权窗口,请使用 <button open-type=”getUserInfo”/>

  2. 需要授权 scope.userLocation 时必须配置地理位置用途说明。