open-type=getPhoneNumber 的安卓下授权后无法进入回调
发布于 5 年前 作者 ifan 6928 次浏览 来自 问答

在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
        })
    }
})
2 回复

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

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

回到顶部