微信小程序API 在设置界面中修改对该小程序的授权信息

2017-08-17

wx.authorize(OBJECT)


基础库 1.2.0 开始支持,低版本需做兼容处理

部分接口需要获得同意后才能调用。此类接口调用时,如果用户未授权过,会弹窗询问用户,用户点击同意后方可调用接口。如果用户点了拒绝,则短期内调用不会出现弹窗,而是直接进入 fail 回调。用户可以在小程序设置界面中修改对该小程序的授权信息。本接口用于提前向用户发起授权,调用后会立刻弹窗询问用户是否同意小程序使用某项功能或获取用户的某些数据,但不会实际调用接口。如果用户之前已经同意,则不会出现弹窗,直接返回成功。

OBJECT参数说明:

参数名类型必填说明
scopeString需要获取权限的scope,详见 scope 列表
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名类型说明
errMsgString调用结果

示例代码:

// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
wx.getSetting({
    success(res) {
        if (!res.authSetting['scope.record']) {
            wx.authorize({
                scope: 'scope.record',
                success() {
                    // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
                    wx.startRecord()
                }
            })
        }
    }
})

scope 列表

scope对应接口描述
scope.userInfowx.getUserInfo用户信息
scope.userLocationwx.getLocation, wx.chooseLocation地理位置
scope.addresswx.chooseAddress通讯地址
scope.recordwx.startRecord录音功能
scope.writePhotosAlbumwx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum保存到相册