组件名称 :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
- 在首页页面中使用<button open-type="getPhoneNumber|agreePrivacyAuthorization"> 组件
- 在页面加载时调用`getLocation` API,此时会弹出隐私弹窗
- 点击不同意按钮,关闭隐私弹窗
- 点击`同意隐私协议并授权手机号` 按钮
- 观察控制台发现,`bindgetphonenumber`的事件回调没有触发,而触发了`wx.onNeedPrivacyAuthorization`事件回调,会导致再次出现隐私协议弹窗。
正常表现:点击使用了耦合类型的Button按钮时,应该正常触发bindgetphonenumber 事件回调,不应该再触发`wx.onNeedPrivacyAuthorization`事件回调导致再次出现隐私协议弹窗。
经过多次测试,只有此2.32.3版本存在此问题,高于此版本的基础库不会有问题。
这种问题该怎么兼容?我们的代码难道要针对低于此版本、等于此版本、高于此版本这三种情况来兼容吗?
代码片段: https://developers.weixin.qq.com/s/kSJsi1m276LA
2.32.3修了,预计本周重发
大佬已经实现了嘛?小程序名称是什么?可否体验一下
<button open-type="getPhoneNumber|agreePrivacyAuthorization"> 耦合使用了, 还需要掉这个this.resolvePrivacyAuthorization() ???
试了下,应该是2.32.3这个基础库有问题了。点击“同意并授权”按钮后,是会触发被动监听,但是其实已经同意了协议。要么等等看官方是否修复,要么你判断版本到2.33.0
微信的隐私相关的SDK都需要用户授权隐私协议才可以调用,跟你你所描述,你在首页获取位置信息的时候拒绝了隐私协议授权,那你在获取手机号码的时候是需要从新授权隐私协议的,然后才可以使用获取手机号码SDK,这个逻辑是对的呀,没有问题