授权
部分接口需要经过用户授权同意才能调用。将这些接口按使用范围分成多个 scope,用户选择 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。
scope列表
scope | 对应接口 | 描述 |
---|---|---|
scope.userInfo | swan.getUserInfo | 用户信息 |
scope.userLocation | swan.getLocation, swan.chooseLocation | 地理位置 |
scope.writePhotosAlbum | swan.saveImageToPhotosAlbum | 保存到相册 |
scope.address | swan.chooseAddress | 收货地址 |
scope.invoiceTitle | swan.chooseInvoiceTitle | 发票抬头 |
scope.record | swan.getRecorderManager | 录音功能 |
scope.camera | camera | 摄像头 |
此类接口调用时需注意
- 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
- 如果用户之前已经同意授权,则不会出现弹窗,可直接调用接口;
- 如果用户之前已经拒绝,则再次调用也不会弹窗,会执行 fail 回调。请开发者兼容用户拒绝授权的场景。
获取用户授权设置
开发者可以使用 swan.getSetting 获取用户的当前设置。
打开设置界面
用户打开设置界面方法:
可以在小程序设置界面“右上角 -> 设置 -> 权限管理”中控制该小程序的授权状态。开发者打开设置界面方法:
可以调用 swan.openSetting 调起客户端智能小程序设置界面,返回用户设置的操作结果。
提前发起授权请求
开发者可以使用 swan.authorize 提前向用户发起授权请求。
授权有效期
一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,直到用户主动删除小程序。