官方公告地址:
https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801
目前,开发工具或者体验版的小程序,调试基础库如果是2.33.0及以上就得适配了,线上版本9月15日之后生效,所以这之前需要尽快改完,发布一版,否则到了9月15号之后 线上就会生效报错了。
其实改起来也很简单,以下是实现步骤和代码:
1、首先看一下这个网址,里边包含涉及到的隐私的接口,这些接口都要适配一下
https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html
在以上接口用到的页面,需要画一下类似上边的弹窗(这个弹窗可以全局定义个组件,方便多个页面共用),然后里边蓝字可以点击后调用wx.openPrivacyContract(Object object)接口即可,会自动跳转打开隐私协议页面。
拒绝按钮可以加一个点击事件,然后在事件里这样写
同意按钮比较特殊,布局需要用button这样写,记得给button加一个Id
然后在handleAgreePrivacyAuthorization里就可以获取到点击事件,这样写
2、最后需要在onLoad或者onShow里加上以下监听代码,在这里边让自定义的隐私弹窗显示出来即可。
以上代码加上就可以了,如果业务逻辑用到了需要判断是否授权过,可以加上 wx.getPrivacySetting(Object object)去获取是否授权过,用不到可以不加这个判断。
楼主:你这边和微信官方的方案不一致吧。需要把wx.onNeedPrivacyAuthorization监听方法中加入隐私接口相关的逻辑之前,不一定是onload生命周期
相关官方代码链接如下:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/privacy/wx.onNeedPrivacyAuthorization.html
楼主你这在自定义组件中怎么拿到 resolvePrivacyAuthorization?
this.resolvePrivacyAuthorization = resolve 这个 resolvePrivacyAuthorization 需要在哪里定义吗?
请问官方给的wx.getPrivacySetting 这个接口怎么配合wx.onNeedPrivacyAuthorization 使用啊?
我是一个设计师,谁出个教程啊,没教程真搞懂,用的是傻白甜UNI框架
直接写?
if(wx.onNeedPrivacyAuthorization){}
直接写在if里吗?我看这个api是有返回值,如果没有授权这个api会返回 false,空,或null ?
目前我看里面是有值的,if都能触发
还有一个问题 如果低版本用户怎么处理。需要自己写兼容逻辑吗
比如在首页需要用到地理位置授权,用户如果拒绝了,是不是就不能获取地理位置了?如果用户在设置里手动打开了,又是什么情况呀?测试也没反应,崩溃
拒绝后要怎么处理,直接退出小程序吗
第二步监听一次就行,不用再重发监听,你每次onShow都监听的话,可能会导致重复监听