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:授权操作为异步操作,完成前请不要多次调用。