项目链接:https://github.com/94xy/miniprogram-privacy
效果预览:
使用方法:
1、复制项目 component
文件夹中的 privacy
文件夹到小程序项目中的组件目录;
2 、在 page.json 中引入组件
{
"usingComponents": {
"Privacy": "/component/privacy/privacy"
}
}
3 、在 page.wxml 中使用组件,需要授权显示弹窗,不需要不显示
<Privacy />
4 、可以在所有使用了隐私接口的页面都加上该组件,授权一次之后使用所有隐私接口不再需要授权
跳过阅读:
可以不阅读就点击“同意”按钮
<Privacy skipRead="{{true}}" />
流程:
- 页面显示时使用 wx.getPrivacySetting 接口查询是否需要授权,需要授权则显示组件;
- 用户点击“拒绝”直接退出小程序,用户点击“同意”关闭弹窗并同步给微信,之后可以正常使用所有隐私接口。
注意事项:
- 2023 年 9 月 15 号之前,默认不会启用隐私相关功能,所以检测不到需要弹窗的情况,可以在 app.json 中配置 "__usePrivacyCheck__": true 之后,接口才可以检测到是否需要弹窗。个人实际情况:我在开发者工具中配置了 "__usePrivacyCheck__": true ,needAuthorization 无论如何返回的都是 false,但在真机模拟的情况下可以返回 true
- 自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明。
取消授权:
- 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。
- 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。
skipRead="{{true}}"这个在组件里怎么没看到接收啊,这个是在哪判断的啊?
我居然没找到 uni-app 直接退出小程序的方法,哭
uniapp能用吗?
有个疑问,拒绝的时候直接退出小程序吗?这样用户体验是不是不太好?我的做法是根据官方的例子,不管是同意还是拒绝都给父组件返回信息,拒绝返回'disagree',同意返回'agree',用户下次点击的时候根据返回信息判断上次是否已同意,如果一直拒绝则始终返回'disagree',用户无法继续后面的操作, 只有同意才继续后面的业务逻辑。
为什么真机调试模式也出来这个页面,弹框没出来,我应该怎么操作让弹框出来
弹框组件引入,在页面用wx:if判断,弹不出怎么回事
__usePrivacyCheck__ 添加设置以后,选取本地图片之类的功能没反应,即使已经申请了 隐私权限
__usePrivacyCheck__: true, 为啥我开启后,开发者工具清除授权缓存后还能授权。手机预览倒是正常的。开发者工具是不是有问题
大佬,问下能否设计成插件方式引入
做了一半发现不对劲,我小程序用了5个隐私权限涉及20个页面,是每个页面底部都要引入这个组件吗?