授权

部分接口需要经过用户授权同意才能调用。将这些接口按使用范围分成多个 scope,用户选择 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。

scope列表

scope对应接口描述
scope.userInfoswan.getUserInfo用户信息
scope.userLocationswan.getLocation, swan.chooseLocation地理位置
scope.writePhotosAlbumswan.saveImageToPhotosAlbum保存到相册
scope.addressswan.chooseAddress收货地址
scope.invoiceTitleswan.chooseInvoiceTitle发票抬头
scope.recordswan.getRecorderManager录音功能
scope.cameracamera摄像头

此类接口调用时需注意

  • 如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
  • 如果用户之前已经同意授权,则不会出现弹窗,可直接调用接口;
  • 如果用户之前已经拒绝,则再次调用也不会弹窗,会执行 fail 回调。请开发者兼容用户拒绝授权的场景。

获取用户授权设置

开发者可以使用 swan.getSetting 获取用户的当前设置。

打开设置界面

  • 用户打开设置界面方法:
    可以在小程序设置界面“右上角 -> 设置 -> 权限管理”中控制该小程序的授权状态。

    授权 - 图1

  • 开发者打开设置界面方法:
    可以调用 swan.openSetting 调起客户端智能小程序设置界面,返回用户设置的操作结果。

提前发起授权请求

开发者可以使用 swan.authorize 提前向用户发起授权请求。

授权有效期
一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,直到用户主动删除小程序。