authorize
部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。
此类接口调用时:
- 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
- 如果用户已授权,可以直接调用接口;
- 如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
支持
安装
$ npm install @uni/authorize --save
or
$ npm install @uni/apis --save
示例
import authorize from '@uni/authorize';
authorize({
scope: 'scope.userLocation',
success: () => {
console.log('success');
},
fail: (res) => {
console.log('fail', res);
},
complete: (res) => {
console.log('complete', res);
}
});
authorize({
scope: 'scope.userLocation',
}).then((res?) => {
console.log('success');
});
你也可以从大包引入:
import { authorize } from '@uni/apis';
参数
成员 | 类型 | 描述 | 必选 | 默认值 |
---|---|---|---|---|
options |
object |
是 | - | |
options.scope |
string |
需要获取权限的 scope,详见 scope 列表 | 是 | - |
options.success |
Function |
成功的回调 | 否 | - |
options.fail |
Function |
失败的回调 | 否 | - |
options.complete |
Function |
结束的回调 | 否 | - |
scope 列表
<Response>
(不通用)
返回:注意:只有支付宝小程序有返回
成员 | 类型 | 描述 |
---|---|---|
response | object |
- |
response.authCode |
string |
授权码 |
response.authErrorScopes |
object |
失败的授权类型,key 是授权失败的 scope,value 是对应的错误码。 |
response.authSuccessScopes |
Array |
成功的授权 scope |