收藏
回答

配置隐私相关之后chooseAvatar无法获取头像?

新加了隐私组件,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();
  };
回答关注问题邀请回答
收藏

4 个回答

  • 🐙你说的对
    🐙你说的对
    2023-09-07

    解决了,是我写法问题,把resolvePrivacyAuthorization存到ref里面就好使了😒

    2023-09-07
    有用 1
    回复
  • 月亮之上
    月亮之上
    2023-10-07

    [渲染层错误] [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)

    2023-10-07
    有用
    回复 1
    • 月亮之上
      月亮之上
      2023-10-07
      [渲染层错误] [Component] <button>: chooseAvatar:fail privacy permission is not authorized(env: Windows,mp,1.06.2308310; lib: 3.1.2)
      2023-10-07
      回复
  • 明
    2023-09-07

    刚刚不行,现在又可以了,微信估计又把bug传生产环境了

    2023-09-07
    有用
    回复
  • null&null
    null&null
    2023-09-07

    我想知道我点击一个上传文件api这时候触发了授权弹窗,那么流程是不是得点击两遍?第一次点击是授权,第二次才是正常功能使用?

    2023-09-07
    有用
    回复 3
    • 🐙你说的对
      🐙你说的对
      2023-09-07
      目前看是这样的,要多点一次。不过只要这次授权过了,之后就不用再点同意了。
      2023-09-07
      回复
    • null&null
      null&null
      2023-09-07回复🐙你说的对
      还有个问题,我这边用的同意按钮open-type="agreePrivacyAuthorization",但是这边为什么只会触发同意,但是不会触发我的其他方法知道吗
      2023-09-07
      回复
    • 🐙你说的对
      🐙你说的对
      2023-09-14回复null&null
      写到onClick里面
      2023-09-14
      回复
登录 后发表内容