收藏
回答

open-type=getPhoneNumber 的安卓下授权后无法进入回调

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug button 客户端 7.0.3 2.6.5

在ios上,用户点击按钮,可以正常回调,但是在安卓端就无法进入回调,希望安卓端能正常进入回调

补充了代码片段因业务需要,在页面的onHide事件中我隐藏了按钮,查看日志发现,在弹出授权的时候,App和页面的onHide事件都执行过,这种情况下用户授权获取手机号后后,页面回调不会执行,如果我去掉pageShow的相关控制逻辑,则页面回调能正常执行

<view wx:if="{{pageShow}}">
    <button open-type="getPhoneNumber" bindgetphonenumber="bindGetPhoneNumber">login</button>
</view>

const app = getApp()

 
Page({
    data: {
        pageShow:true
    },
    bindGetPhoneNumber: function(e) {
        wx.showLoading();
        setTimeout(function(){
            wx.hideLoading();
        },2000)
    },
    onLoad: function() {
        
    },
    onShow:function(){
        this.setData({
            pageShow:true
        })
    },
    onHide:function(){
        this.setData({
            pageShow:false
        })
    }
})



最后一次编辑于  04-08
回答关注问题邀请回答
收藏

2 个回答

  • 黄思程
    黄思程
    04-08

    安卓下弹授权框会触发 onHide 导致,这个我们修复下。要规避的话,不要用 wx:if 的方式把组件销毁,通过 hidde 或 display none 来

    04-08
    赞同
    回复 4
    • log琥珀
      log琥珀
      04-08

      说下发现问题的场景吧 最近在处理兼容无障碍读屏的问题 发现,在旁白模式下,二级页面滑动浏览,会获取到首页元素的焦点,对于通过navigateTo进行导航,会有同样的问题。 才出现了这种奇怪的代码

      04-08
      回复
    • 黄思程
      黄思程
      04-09回复log琥珀

      意思是,通过 navigateTo 跳转后,在下一个页面滚动,但却获取了上一个页面的焦点?

      04-09
      回复
    • log琥珀
      log琥珀
      04-09回复黄思程

      对,旁白模式下,滑动浏览(其实就是遍历页面元素)的时候,会获取到上一个页面的焦点

      04-09
      回复
    • log琥珀
      log琥珀
      04-09回复黄思程

      使用display none 的方案是可行的,hidden没试

      04-09
      回复
  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    04-08

    不能进入回调是什么意思?这边测试是正常的,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    04-08
    赞同
    回复 1
    • log琥珀
      log琥珀
      04-08

      已经添加了复现问题的代码,谢谢

      04-08
      回复