在小程序开发中,获取用户信息,获取手机号基本是必须用到的功能
但是有时可能会遇到“手机号解析失败”的问题,这个时候我们检查下代码是否是在获取手机号的回调中才调用的wx.login的方法,如果是这样,这一点官方文档是有说明的,如下:
所有解决办法是提前调wx.login,在获取手机号的回调方法中取检验登录状态,代码如下:
onLoad: function (options) {
wx.login({
success: res => {
that.setData({
code: res.code
})
}
})//先登录在获取手机号
},
getPhoneNumber(e) {
let encryptedData = e.detail.encryptedData
let iv = e.detail.iv
wx.checkSession({
success() {
//session_key 未过期,并且在本生命周期一直有效
},
fail() {
// session_key 已经失效,需要重新执行登录流程
wx.login({
success: res => {
code = res.code
that.setData({
code: code
})
}
})
},
complete() {
//将code,encryptedData,iv传给后台进行解密
}
})
}