微信小程序---- 获取手机号(微信最新更新)
前言:需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到动态令牌code,然后把code传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机号。每个code有效期为5分钟,且只能消费一次。 注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用。
微信官方参考网址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
<button class=" marL20 matr anniusm" open-type="getPhoneNumber" bindgetphonenumber="getPhone">获取</button>
在公共方法js里面
function getPhoneNumber(event) {
let that = this;
let code = event.detail.code;
wx.checkSession({
success: (res) => {
HTTP.Config.Request('question/getmobile', 'POST', { code: code })
.then(function (v) {
let mobile = v.data.phoneNumber;
wx.setStorageSync('mobile', mobile)
}, function (error) {
console.log(error);
})
},
fail(err) {
wx.login({
success: function (res) {
console.log('is_code:', res.code)
if (res.code) { }
}
})
}
})
}
调用页面的js:
getPhone(e) {
util.getPhoneNumber(e)
this.setData({
mobile:wx.getStorageSync('mobile') || ''
})
},
|