小程序开放平台

文档中心
起步
游戏引擎
运行时
基础能力
网络
存储
文件系统
渲染
分包加载
权限
模块化
服务端API
开放能力
性能优化

权限

开发
>
开发指南
>
基础能力
>
权限
>
更新时间:2024-11-13 19:05:40

部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个

scope
,用户选择对
scope
来进行授权,当授权给一个
scope
之后,其对应的所有接口都可以直接使用。

此类接口调用时:

  • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口。
  • 如果用户已授权,可以直接调用接口。
  • 如果用户已拒绝授权,还是可以通过授权接口唤起弹窗询问。

获取用户授权设置

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

打开设置界面

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

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

提前发起授权请求

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

scope 列表

scope
对应接口
描述
scope.userInfoxhs.getUserInfo用户信息
scope.userLocationxhs.getLocation, xhs.chooseLocation地理位置
scope.userLocationBackgroundxhs.startLocationUpdateBackground后台定位
scope.writePhotosAlbumxhs.saveImageToPhotosAlbum保存到相册
scope.cameraxhs.scanCode摄像头

授权有效期

一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,下次打开,依然沿用之前的授权记录。

最佳实践

  • 在真正需要使用授权接口时,才向用户发起授权申请,并在授权申请中说明清楚要使用该功能的理由。
  • 交易主链路中,避免多次授权,打断用户。
  • 交易主链路中,用户拒绝授权,不应打断主链路。
  • 服务商场景下,按照一号一店一小程序进行授权,小程序间授权不允许打通。

注意事项

  1. xhs.authorize({scope: "scope.userInfo"})
    ,不会弹出授权窗口
  2. 需要授权 scope.userLocation、scope.userLocationBackground 时必须配置地理位置用途说明