swan.authorize

解释: 提前向用户发起授权请求。

方法参数

Object object

object参数说明

属性名类型必填默认值说明
scopeString部分接口需要经过用户授权同意才能调用。将这些接口按使用范围分成多个 scope,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用,详见 scope 列表。
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

scope 有效值列表

scope对应接口描述
scope.userInfoswan.getUserInfoswan.authorize - 图1用户信息
scope.userLocationswan.getLocationswan.authorize - 图2, swan.chooseLocation地理位置
scope.writePhotosAlbumswan.saveImageToPhotosAlbumswan.authorize - 图3保存到相册
scope.addressswan.chooseAddressswan.authorize - 图4收货地址
scope.invoiceTitleswan.chooseInvoiceTitleswan.authorize - 图5发票抬头
scope.recordswan.getRecorderManagerswan.authorize - 图6录音功能
scope.cameracamera摄像头

示例

在开发者工具中预览效果

扫码体验

swan.authorize - 图7请使用百度APP扫码

图片示例

swan.authorize - 图8

swan.authorize - 图9

swan.authorize - 图10

代码示例

  • 在 swan 文件中
  1. <view class="container">
  2. <view class="card-area">
  3. <button s-for="item in items" id="{{item.id}}" bind:tap="btnClick" type="primary" hover-stop-propagation="true">{{item.name}}</button>
  4. </view>
  5. </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'
                    });
                }
            }
        });
    }
});

错误码

权限相关的错误码参见授权接口通用错误码swan.authorize - 图11

Android

错误码说明
1001执行失败
10001内部错误
11001未知错误
11003用户取消授权

iOS

错误码说明
202解析失败,请检查参数是否正确
10001内部错误
10002网络请求失败
10004用户拒绝(user not login)

Bug & Tip

tip:授权操作为异步操作,完成前请不要多次调用。