收藏
回答

wx.authorize授权弹框总是比隐私弹框先弹起来,怎么办?

隐私组件内部已经使用了

lifetimes: {
  attached: function () {
    const closePopUp = () => {
      this.disPopUp()
    }
    privacyHandler = resolve => {
      privacyResolves.add(resolve)
      this.popUp()
      // 额外逻辑:当前页面的隐私弹窗弹起的时候,关掉其他页面的隐私弹窗
      closeOtherPagePopUp(closePopUp)
    }

    closeOtherPagePopUpHooks.add(closePopUp)

    this.closePopUp = closePopUp
  },
  detached: function () {
    closeOtherPagePopUpHooks.delete(this.closePopUp)
  }

},

wx.authorize 永远比隐私弹框先弹出来,有遇到问题的吗?

回答关注问题邀请回答
收藏

4 个回答

  • guo
    guo
    2023-08-29

    遇到了,所以我把wx.authorize删了,直接调用getLocation

    2023-08-29
    有用
    回复 7
    • 救赎
      救赎
      2023-08-29
      这样不行的吧?我之前试过。你成功了?
      2023-08-29
      回复
    • guo
      guo
      2023-08-30回复救赎
      可以,我盲猜wx.authorize的调用后会立刻弹窗特性导致优先级比隐私回调高,但是其实并没有真正调起定位
      2023-08-30
      回复
    • guo
      guo
      2023-08-30回复救赎
      不过后续应该会修复这个问题,因为 wx.authorize也在隐私协议中
      2023-08-30
      回复
    • IU
      IU
      2023-08-30回复guo
      你用的官方代码嘛?我用官方代码,调wx.authorize接口都不触发官方的隐私弹框,别的都可以
      2023-08-30
      回复
    • 救赎
      救赎
      2023-08-30回复guo
      期待修复
      2023-08-30
      回复
    查看更多(2)
  • 夏味
    夏味
    2023-08-25

    wx.authorize 永远比隐私弹框先弹出来。上周我测试时,已经遇到了,并且反馈了一下

    https://developers.weixin.qq.com/community/develop/doc/000042e44347a0a201308a5de61800

    建议是先发起隐私协议授权 wx.requirePrivacyAuthorize,然后在 wx.requirePrivacyAuthorize 的 success 的回调里执行 wx.authorize

    能确保把顺序交换一下。

    2023-08-25
    有用
    回复 11
    • 救赎
      救赎
      2023-08-28
      wx.requirePrivacyAuthorize这个不是模拟的吗?后面能执行回调吗?
      2023-08-28
      回复
    • 夏味
      夏味
      2023-08-28回复救赎
      “模拟” 这个词表达不准确,按 API 的设计和文档,线上是可以使用的,参考官方 demo 处理微信昵称时用到了。回调也是能正常执行的。
      2023-08-28
      回复
    • 夏味
      夏味
      2023-08-28回复救赎
      可以看下我的笔记,参考下思路:
      2023-08-28
      回复
    • 救赎
      救赎
      2023-08-28
      那如果他拒绝了隐私授权弹框的话 那后面就不会再触发隐私弹框了哈?
      2023-08-28
      回复
    • 救赎
      救赎
      2023-08-28回复救赎
      看过了 还是没有好的解决方案 不知道是不是我没有看懂
      2023-08-28
      回复
    查看更多(6)
  • 默
    2023-08-24

    你可以先调用wx.getPrivacySetting获取同步信息 如果用户同意了在调用wx.authorize 反之不用处理 之后在调用wx.getLocation的时候就会监听弹出隐私弹框了啊

    2023-08-24
    有用
    回复 5
    • 救赎
      救赎
      2023-08-24
      https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html
      怎么和我的不一样啊?
      2023-08-24
      回复
    • 救赎
      救赎
      2023-08-24
      现在就是先弹了授权弹框 然后再弹出的隐私弹框 不是很奇怪吗?
      2023-08-24
      回复
    • 救赎
      救赎
      2023-08-24回复救赎
      没有同意过隐私弹框的情况下
      2023-08-24
      回复
    • 救赎
      救赎
      2023-08-24
      你看的应该是插件的,我看的是小程序用户
      2023-08-24
      回复
    • IU
      IU
      2023-08-30
      隐私不包含包含wx.authorize这个吗?我看官方文档罗列出来了啊
      2023-08-30
      回复
  • 救赎
    救赎
    2023-08-24

    wx.authorize

    真的有被监听吗?授权地理位置的时候不会触发隐私协议

    授权同意后 调用wx.getLocation才会弹隐私协议,官方能不能回答一下

    2023-08-24
    有用
    回复 5
    • 救赎
      救赎
      2023-08-24
      而且如果在一个页面拒绝过以后 后面进入别的页面也不会再弹隐私弹框了?
      2023-08-24
      回复
    • BOBO
      BOBO
      2023-08-24回复救赎
      用户拒绝后。进入另一个调用隐私接口的页面。释放在弹出隐私弹框。取决于另一个页面是否监听了wx.onNeedxxx。或者另一个页面是否用了隐私弹框组件。
      2023-08-24
      回复
    • BOBO
      BOBO
      2023-08-24
      微信的判断逻辑是:用户调用隐私接口的时候是否授权了。这个授权地点可以在任意地方。不一定是在调用某一个隐私接口。比如你的小程序总计用到了5个隐私接口。但是登录的时候只用到了1个接口。如果你在登录流程里增加了隐私弹框。用户一旦同意了,那么接下来小程序内,其他使用隐私接口的地方都不会弹框了(用户同意一次,等于同意所所有隐私接口。除非后续小程序新增了新的隐私接口。才会重新弹出)
      2023-08-24
      回复
    • BOBO
      BOBO
      2023-08-24
      所以我的建议是判断隐私弹框弹出的地方分2中场景
      1、小程序内:如果小程序业务全部发生在小程序里,那么可以参考官方demo1中的方式,主动利用wx.getPrivacySetting判断授权情况主动弹框。弹框的地点在登录流程和每个tab页面。应为这几个地方都是用户必经之地。如果有其他重要业务点,也可以额外增加隐私组件引入
      2、小程序外:有的业务是可以分享出去的。比如分享邀请链接。这个邀请链接流程里有用到隐私接口。这种路程入口在外部的,那么每个流程都要加隐私组件引入
      2023-08-24
      回复
    • IU
      IU
      2023-08-30
      我用的官方代码,调取录音权限,也没有监听到
      2023-08-30
      回复
登录 后发表内容