项目链接: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
- 自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明。
取消授权:
- 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。
- 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。
你好,我在 onload里面有获取地理位置这样一段代码,我的隐私弹框要怎么写 uni.getSetting({
success(res) {
if (res.authSetting['scope.userLocation']) {
that.t()
} else {
that.h();
}
}
})
已接入,感谢大佬!
阅读协议之后重新去调用wx.getPrivacySetting, 发现needAuthorization值仍为true,不是必现,是偶现的,刚同意授权就再去查的话获取结果可能还是老的。
"__usePrivacyCheck__": true设置发布到生产环境会生效吗
针对那些一进入界面就调用的api呢,是不是在点击完弹窗确认按钮后要重新执行下界面的onload,onshow重新刷新界面?
你好大佬,我想问这次微信的这个隐私保护的这个玩意和我之前的这个弹框授权有啥影响吗,我不是很明白呢,能解惑一下吗,谢谢
我在开发者工具中配置了 "__usePrivacyCheck__": true ,needAuthorization 无论如何返回的都是 false,但在真机模拟的情况下可以返回 true
这个知道是什么原因吗?我换了另外的小程序appId,就返回true了,但用回之前那个,就一直是false
有遇到获取完隐私的接口后,地理位置就获取不成功的嘛
你好,如果我只是想在登录页面使用,在点击获取手机号码登录时使用,这种情况下,这个弹窗和官方默认的手机号授权弹窗怎么结合呢?
是不是如果用户隐私授权弹窗用户拒绝的话就不能调用接口?