swan.authorize
解释: 提前向用户发起授权请求。
方法参数
Object object
object参数说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
scope | String | 是 | 部分接口需要经过用户授权同意才能调用。将这些接口按使用范围分成多个 scope,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用,详见 scope 列表。 | |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
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 | 摄像头 |
示例
扫码体验
请使用百度APP扫码
图片示例
代码示例
- 在 swan 文件中
<view class="container">
<view class="card-area">
<button s-for="item in items" id="{{item.id}}" bind:tap="btnClick" type="primary" hover-stop-propagation="true">{{item.name}}</button>
</view>
</view>
- 在 js 文件中
Page({
data: {
title: 'authorize',
items: [{
name: '授权获取用户信息',
id: 'scope.userInfo'
}, {
name: '授权获取位置信息',
id: 'scope.userLocation'
}, {
name: '授权保存到相册',
id: 'scope.writePhotosAlbum'
}, {
name: '授权获取收货地址',
id: 'scope.address'
}, {
name: '授权获取发票抬头',
id: 'scope.invoiceTitle'
}, {
name: '授权获取录音功能',
id: 'scope.record'
}, {
name: '授权使用摄像头',
id: 'scope.camera'
}]
},
btnClick(e) {
let scope = e.currentTarget.id;
swan.authorize({
scope,
success: res => {
swan.showToast({
title: '已成功授权',
icon: 'none'
});
},
fail: err => {
if (err.errCode === 10003) {
swan.showToast({
title: '你已拒绝授权申请',
icon: 'none'
});
}
}
});
}
});
错误码
权限相关的错误码参见授权接口通用错误码
Android
错误码 | 说明 |
---|---|
1001 | 执行失败 |
10001 | 内部错误 |
11001 | 未知错误 |
11003 | 用户取消授权 |
iOS
错误码 | 说明 |
---|---|
202 | 解析失败,请检查参数是否正确 |
10001 | 内部错误 |
10002 | 网络请求失败 |
10004 | 用户拒绝(user not login) |
Bug & Tip
tip:授权操作为异步操作,完成前请不要多次调用。