项目链接: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
- 自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明。
取消授权:
- 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。
- 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。
大佬你好,如果首页有调用了隐私接口,然后在其他页面也有调用了隐私接口。这种情况是不是只要在首页增加弹窗,同意之后所有页面都可以调用隐私接口,而不只是仅仅首页可以?
大家有这个提示么
uni里面引入有方法吗
楼主你好,wx.getPrivacySetting 基础库 2.32.3 开始支持,低版本需做兼容处理,我们需要加一下这个api的if判断吧,客户端的基础库低于这个版本时会报错,else可以不加,if判断是不是有必要
大佬,我们的小程序是共享骑行,首页就是地图需要定位才能骑行,请问是不是直接在首页弹比较好啊?不同意就退出小程序
如果页面在onload就调用接口,弹窗没同意,就触发就执行接口了要怎么整。
感谢,已解决!
要不要判断一下基础组件的版本号,低于2.32是不是直接不调用隐私接口了?
大佬这样写第一次拒绝后,以后每次进入到页面都会弹出,是否太频繁了
只要在页面当中涉及到 隐私接口 的,都要在该页面中引用这个弹窗组件?
这里的判断如果初始化了多个tabbar页面后(这几个tabbar页面都有隐私保护指引弹窗),同意了一个弹窗后,其他页面的弹窗还在。把这个判断去掉或者用返回的`errMsg`来判断会不会更好。
这样再次访问初始化过的tabbar隐私保护指引弹窗就自动不显示了