使用最新版的资源库3.1.2,发现报错
自定义的隐私协议弹窗使用的是官方文档中的方法
<button id="agree-btn" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgree" class="argee ">同意并继续</button>
wx.getPrivacySetting({
success: res => {
console.log("是否需要授权:", res.needAuthorization, "隐私协议的名称为:", res.privacyContractName)
if (res.needAuthorization) {
this.popUp()
} else {
this.triggerEvent("agree")
}
},
fail: () => {},
complete: () => {},
})
在3.1.1及之前的资源库及前几天的线上环境中都不存在报错,在3.1.2及如今的线上环境,都存在报错提示
在明明写了隐私协议弹窗的情况下依然弹出了官方的授权弹窗
不知道是什么原因。
检查下是否在弹起自定义隐私弹窗之前调用了隐私接口,如果是的话,会出现官方隐私弹窗
onNeedPrivacyAuthorization 有用这个就能使用自己的,没有就是官方的
页面是不是触发隐私接口了呀?
我们的小程序中出现了同样的问题,目前已经解决
原因:官方使用wx.onNeedPrivacyAuthorization进行用户隐私的监听,但是在我们的小程序中,仅仅使用wx.getPrivacySetting来判断是否用户有授权动作,在全局判断的时候,我们因为引入了第三方sdk,而这个中使用了被废弃的wx.getUserInfo,导致被微信全局监听到,弹出官方弹窗。现解决方案:在项目启动时,添加监听逻辑,替代微信官方的监听
app.js——onLaunch方法中添加如下逻辑即可
wx.onNeedPrivacyAuthorization &&
wx.onNeedPrivacyAuthorization((resolve, eventInfo) => {
console.log('触发本次事件的接口是:' + eventInfo.referrer)
// 需要用户同意隐私授权时
// 弹出开发者自定义的隐私授权弹窗
this.resolvePrivacyAuthorization = resolve
})
我这也是这种情况,后来改成先直接调用onNeedPrivacyAuthorization就弹窗自定义的,但是晚上的时候又出现了调用官方的,不知道是不是在做测试。过了一会儿就有好了。还有个问题就是,文档上说的同意后会自动继续执行,本地测试没有成功过
通过判断触发 wx.onNeedPrivacyAuthorization 事件
遇到同样的问题 等解决
-。-! 新bug吧