七鱼开发文档中心
总览服务端 APIWebiOSAndroid鸿蒙Uniapp微信小程序插件三方接入
合规指南

微信小程序SDK合规指南

由于微信并未对小程序内 chooseImage、chooseVideo API 进行二次授权,导致部分客户在小程序合规上遇到一些问题,为此七鱼访客端 SDK 专门进行了适配。

设置开启授权

_$setAuthorizeType

版本要求 >= 1.12.0

接口描述

设置是否开启二次授权

参数说明

_$setAuthorizeType(type: number): void
字段类型必填说明
typenumber是0: 不开启,1: 开启,默认 0 不开启

代码示例

// 开启授权校验
myPluginInterface._$setAuthorizeType(1);

设置授权监听

_$onAuthorize

版本要求 >= 1.12.0

接口描述

监听小程序插件授权申请请求

参数说明

_$onAuthorize(cb: Function): void

cb 回调函数参数说明:

字段类型说明
typestring授权类型"scope.chooseImage": 从相册选取照片权限"scope.chooseImage.camera": 拍摄照片权限"scope.chooseVideo": 从相册选取视频权限"scope.chooseVideo.camera": 拍摄视频权限
callback(error?: Error) => void响应 SDK 授权请求授权成功:调用 callback()授权失败:调用 callback(new Error('抱歉没有授权!'))

代码示例

// 注册授权监听回调
myPluginInterface._$onAuthorize((type, callback) => {
  // TODO: 业务授权逻辑
});

完整示例代码

1、配置开启二次授权,开启后,每次调用 chooseImage 或者 chooseVideo 时,都会向主小程序进行授权询问

// 开启授权校验
myPluginInterface._$setAuthorizeType(1);

2、主小程序应用添加授权监听

// 客户自定义授权检测逻辑
const checkAuth = (type) => {
  return Taro.getStorageSync(type)
}

// 注册授权监听回调
myPluginInterface._$onAuthorize((type, callback) => {
  const hasAuth = checkAuth(type);
  if (hasAuth) {
    // 已授权,回调小程序插件
    callback();
  } else {
    // 未授权,则弹出提示框进行授权(自行修改 title 和 content 以满足合规需求)
    wx.showModal({
      title: '授权申请',
      content: '是否同意授权' + type,
    })
      .then(res => {
        if (res.confirm) {
          // 此处记录授权状态,避免每次调用都出现授权弹窗(用户可自己调整)
          Taro.setStorageSync(type, 1)
          // 已授权,回调小程序插件
          callback();
        } else {
          // 无授权,回调小程序插件
          callback(new Error('抱歉没有授权'));
        }
      })
      .catch(() => {});
  }
});

3、效果展示

这篇文档有帮助吗?

目录