https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
使用新的接口获取手机号,没有返回code啊Use the new interface to get the mobile phone number, but no code is returned.
使用新的接口获取手机号,没有返回code啊框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | getPhoneNumber | 工具 | 8.0.17 | 2.22.0 |
Framework type problem type API / component name terminal type wechat version basic library version applet bug getphonenumber tool 8.0.17 2.22.0 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html Code snippet < button open type = "getphonenumber" bindetphonenumber = "getphonenumber" > < / button > getphonenumber (E) {console. Log (e.detail. Code)}
回答:
更新下工具版本
是的,开发工具必须得最新版本,然后真机上不能获取code是因为手机上的微信版本号是8.0.16以下的,要做旧版本兼容,所以还是得用上旧版本的接口,如果没有code则使用iv和encryptedData,建议使用云函数
云函数名称:login
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
return里的event里面就包含了手机号码
调用:
<button open-type="getPhoneNumber" @getphonenumber="onPhoneNumber"></button>
//获取微信绑定手机号(云函数获取)
async onPhoneNumber(e){
console.log(e.detail);
if (e.detail.errMsg == "getPhoneNumber:ok") {
const result = await wx.cloud.callFunction({
name: 'login',
data: {
type: 'login',
id: wx.cloud.CloudID(e.detail.cloudID)
}
});
console.log(result); //这个结果中就包含有手机号(云函数登录就有了)
this.dCall.phoneNumber = result.event.id.data.phoneNumber;
}
},
① 确认当前基础库版本是否为 2.21.2 及以上。
② 目前开发者工具未兼容此表现(近期应该会同步),目前以真机调试为准。