用 button 组件获取手机号,比较简单,记录一下避免遗忘。
有个前提是小程序得是企业帐号,个人帐号没有开放这个能力。
获取 openId
用wx.login获取code,用code调后端接口获取openId
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
function getOpenId() { return new Promise((resolve, reject) => { wx.login({ success: (res) => { let params = { loginSysName: "APPLETS_HAOFANG", loginType: 7, loginName: res.code, }; wx.$post("/user/api/wxAuth", params) .then((res) => { if (!res) { wx.showToast({ icon: "none", title: "获取不到openid", }); } resolve(res.openid); }) .then((res) => { reject(""); }); }, fail: (err) => { reject(""); }, }); }); } module.exports = { getOpenId: getOpenId, };
|
1 2 3
| <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> 获取手机号 </button>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| getPhoneNumber(e) { util.getOpenId().then(openId => { if (e.detail && e.detail.encryptedData) { let params = { encryptedData: e.detail.encryptedData, iv: e.detail.iv, openid: openId, loginSysName: "APPLETS_HAOFANG" } wx.$post("/user/api/wxDecryptData", params).then(res => { this.setData({ telPhone: res.phoneNumber }) }) } }) }
|