收藏
回答

Button组件在基础库2.32.3版本中,open-type类型耦合使用的问题?

组件名称 :Button

基础库版本2.32.3

从基础库 2.32.3 版本起,隐私同意按钮支持与手机号快速验证组件手机号实时验证组件耦合使用,调用方式为 <button open-type="getPhoneNumber|agreePrivacyAuthorization"> 或 <button open-type="getRealtimePhoneNumber|agreePrivacyAuthorization">

也支持隐私同意按钮获取用户信息组件耦合使用,调用方式为<button open-type="getUserInfo|agreePrivacyAuthorization">


以上引自官方文档说明

实际测试中发现,在基础库版本2.32.3中,在以下情况中,点击<button open-type="getPhoneNumber|agreePrivacyAuthorization"> 组件按钮时,其对应的 `bindgetphonenumber` 回调事件仍然会被`wx.onNeedPrivacyAuthorization` api进行拦截,无法进入回调。

如何复现:

前提: 切换基础库版本至2.32.3

  1. 在首页页面中使用<button open-type="getPhoneNumber|agreePrivacyAuthorization"> 组件
  2. 在页面加载时调用`getLocation` API,此时会弹出隐私弹窗
  3. 点击不同意按钮,关闭隐私弹窗
  4. 点击`同意隐私协议并授权手机号` 按钮
  5. 观察控制台发现,`bindgetphonenumber`的事件回调没有触发,而触发了`wx.onNeedPrivacyAuthorization`事件回调,会导致再次出现隐私协议弹窗。

正常表现:点击使用了耦合类型的Button按钮时,应该正常触发bindgetphonenumber 事件回调,不应该再触发`wx.onNeedPrivacyAuthorization`事件回调导致再次出现隐私协议弹窗。


经过多次测试,只有此2.32.3版本存在此问题,高于此版本的基础库不会有问题。


这种问题该怎么兼容?我们的代码难道要针对低于此版本、等于此版本、高于此版本这三种情况来兼容吗?


代码片段: https://developers.weixin.qq.com/s/kSJsi1m276LA


最后一次编辑于  2023-09-06
回答关注问题邀请回答
收藏

5 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2023-09-07

    2.32.3修了,预计本周重发

    2023-09-07
    有用
    回复 1
    • Melon
      Melon
      2023-09-07
      好的,麻烦发布修复后通知一下
      2023-09-07
      回复
  • 予 | 忠诚
    予 | 忠诚
    04-03

    大佬已经实现了嘛?小程序名称是什么?可否体验一下

    04-03
    有用
    回复
  • 流星💫
    流星💫
    2023-09-08
    <button open-type="getPhoneNumber|agreePrivacyAuthorization"> 耦合使用了, 还需要掉这个this.resolvePrivacyAuthorization() ???
    


    2023-09-08
    有用
    回复 1
    • Melon
      Melon
      2023-09-08
      正常情况下是不用再调用resolve,只有我反馈的这个基础库版本还需要调用一次,不过上边官方人员回复了会进行修复。
      2023-09-08
      回复
  • « 子不语
    « 子不语
    2023-09-07

    试了下,应该是2.32.3这个基础库有问题了。点击“同意并授权”按钮后,是会触发被动监听,但是其实已经同意了协议。要么等等看官方是否修复,要么你判断版本到2.33.0

    2023-09-07
    有用
    回复 4
    • Melon
      Melon
      2023-09-07
      目前只能判断版本进行兼容了
      2023-09-07
      回复
    • 流星💫
      流星💫
      2023-09-08回复Melon
      getSystemInfo返回SDKVersion 对比去做兼容 ?
      2023-09-08
      回复
    • « 子不语
      « 子不语
      2023-09-11回复Melon
      刚试着2.32.3可以了,应该是被修复了
      2023-09-11
      回复
    • Melon
      Melon
      2023-09-12回复« 子不语
      嗯 我试着也可以了
      2023-09-12
      回复
  • 1995-02-20
    1995-02-20
    2023-09-07

    微信的隐私相关的SDK都需要用户授权隐私协议才可以调用,跟你你所描述,你在首页获取位置信息的时候拒绝了隐私协议授权,那你在获取手机号码的时候是需要从新授权隐私协议的,然后才可以使用获取手机号码SDK,这个逻辑是对的呀,没有问题

    2023-09-07
    有用
    回复 4
    • 1995-02-20
      1995-02-20
      2023-09-07
      反正逻辑就是,你不同意隐私协议授权是无法调用隐私相关的SDK的,这种就好比多了一把锁,你以前获取地址位置,只需要打开一道门的锁(同意获取位置信),现在外面又加了一道门(隐私协议),你需要打开两道门才能进去获取位置信息
      2023-09-07
      回复
    • Melon
      Melon
      2023-09-07回复1995-02-20
      关键是按钮上已经带有同意功能了,理论上就应该直接同意并且触发获取手机号回调, 你看下我的描述,是只有这个基础库有问题,高于这个基础库的版本就没有这个问题,点击同意直接就进入获取手机号回调了
      2023-09-07
      回复
    • 1995-02-20
      1995-02-20
      2023-09-07回复Melon
      那你就换基础库嘛
      2023-09-07
      回复
    • Melon
      Melon
      2023-09-07回复1995-02-20
      用户的基础库可控制不了,随机分布的。
      2023-09-07
      回复
登录 后发表内容