新加了隐私组件,wx.onNeedPrivacyAuthorization方法监听页面,进入页面后,先不同意隐私政策,然后再触发chooseAvatar时,重新弹出隐私弹窗,就报错了,下面是报错信息。
这个问题是没配置相关的隐私的api还是我监听onNeedPrivacyAuthorization方法这边写错了?
下面是代码:
useEffect(() => {
console.log("PrivacyComponent ===>");
const version = Taro.getAccountInfoSync().miniProgram.version;
if (compareVersion(version, "2.32.3") >= 0) {
wx.getPrivacySetting({
success(res) {
console.log("PrivacyComponent ===> res", res);
if (res.needAuthorization) {
setPrivacyContractName(res.privacyContractName);
setShowPrivacy(true);
} else {
// 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用已声明过的隐私接口
console.log("privacy pass");
}
}
});
}
// 监听是否触发权限接口
wx.onNeedPrivacyAuthorization((resolve, eventInfo) => {
console.log('触发本次事件的接口是:' + eventInfo.referrer, eventInfo)
// 需要用户同意隐私授权时
// 弹出开发者自定义的隐私授权弹窗
setShowPrivacy(true);
setResolvePrivacyAuthorization(resolve)
})
}, [])
// 拒绝隐私协议
const exitMiniProgram = () => {
console.log("拒绝隐私协议");
if(resolvePrivacyAuthorization) {
resolvePrivacyAuthorization({ event:'disagree' })
}
setShowPrivacy(false);
// wx.exitMiniProgram();
};
解决了,是我写法问题,把resolvePrivacyAuthorization存到ref里面就好使了😒
[渲染层错误] [Component] <input>: showNicknameAccessory:fail input nickname component will degrade as input component when privacy permission is unauthorized , errno:104 [object Object](env: Windows,mp,1.06.2308310; lib: 3.1.2)
刚刚不行,现在又可以了,微信估计又把bug传生产环境了
我想知道我点击一个上传文件api这时候触发了授权弹窗,那么流程是不是得点击两遍?第一次点击是授权,第二次才是正常功能使用?