合规指南
微信小程序SDK合规指南
由于微信并未对小程序内 chooseImage、chooseVideo API 进行二次授权,导致部分客户在小程序合规上遇到一些问题,为此七鱼访客端 SDK 专门进行了适配。
设置开启授权
_$setAuthorizeType
版本要求 >= 1.12.0
接口描述
设置是否开启二次授权
参数说明
_$setAuthorizeType(type: number): void| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | number | 是 | 0: 不开启,1: 开启,默认 0 不开启 |
代码示例
// 开启授权校验
myPluginInterface._$setAuthorizeType(1);设置授权监听
_$onAuthorize
版本要求 >= 1.12.0
接口描述
监听小程序插件授权申请请求
参数说明
_$onAuthorize(cb: Function): voidcb 回调函数参数说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| type | string | 授权类型"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、效果展示

这篇文档有帮助吗?