项目链接: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
- 自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明。
取消授权:
- 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。
- 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。
感谢楼主的奉献,已经用上了楼主的组件,测试通过。
另外XXXXX一下微信的隐私产品经理,这家伙是应届毕业生么?到底是怎么想的。从产品角度来说,明明可以官方做的东西,非让我们下面各种搞,交互不同意,且授权隐私还出现了重复的问题,真是一大奇葩之谜之操作。你搞这么个谜之操作的东西也就算了,文档还写的一坨一坨的,没有楼主奉献的组件,有的折腾了
最后,再次感谢楼主,YYDS
感谢,已引入项目中使用
我用真机调试返回的needAuthorization一直是false,也配置了"__usePrivacyCheck__": true,咋回事呢?
给在taro3中使用这个组件的同学提前踩个坑:
1.全局引用组件时:需使用 <privacy /> (小写)
2.组件内 pageLifetimes 中的生命周期不会触发,可以使用 attached()
uniapp来一个
大佬,如果是在几个tabbar页面都调用了隐私接口,那这几个页面都要引入这个组件吗
大佬们,想一下,配置了"__usePrivacyCheck__": true,官方默认的隐私弹窗也会弹出来,会和我自定义的弹窗同时弹出,这种情况应该怎么解决呢
请问这个隐私弹窗是没生效么?我看小程序都还没有隐私弹窗
我以为这个隐私协议弹窗在用户同意之后,里面写的那些权限就不用再弹出来让用户再确认了,结果还是要用户再确认一次,搞得我首页现在要用户同意两次
大佬,弹窗我配置在了第三个页面。如果"__usePrivacyCheck__": true的话模拟器就一直在第一个页面识别身份中。但是"__usePrivacyCheck__": false的话就可以进入第三个页面。也没有什么报错提示,请问大概是哪方面原因,谢谢