有了這個組件可以快速獲取微信綁定手機號碼,無須用戶填寫。
1.getPhoneNumber這個組件通過button來實現(別的標籤無效)。將button中的open-type=“getPhoneNumber”,並且綁定bindgetphonenumber事件獲取回調。
- <span style="font-size:14px;"><button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button></span>
2.在使用這個組件之前必須先調用login接口,如果沒有調用login點擊button時會提示先調用login。
- App({
- onLaunch: function () {
- wx.login({
- success: function (res) {
- if (res.code) {
- //發起網絡請求
- console.log(res.code)
- } else {
- console.log('獲取用戶登錄態失敗!' + res.errMsg)
- }
- }
- });
- }
- })
3.通過bindgetphonenumber綁定的事件來獲取回調。回調的參數有三個,
errMsg:用戶點擊取消或授權的信息回調。
iv:加密算法的初始向量(如果用戶沒有同意授權則爲undefined)。
encryptedData: 用戶信息的加密數據(如果用戶沒有同意授權同樣返回undefined)
- getPhoneNumber: function(e) {
- console.log(e.detail.errMsg)
- console.log(e.detail.iv)
- console.log(e.detail.encryptedData)
- if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){
- wx.showModal({
- title: '提示',
- showCancel: false,
- content: '未授權',
- success: function (res) { }
- })
- } else {
- wx.showModal({
- title: '提示',
- showCancel: false,
- content: '同意授權',
- success: function (res) { }
- })
- }
- }
5.用戶同意授權,我們可以根據login時獲取到的code來通過後臺以及微信處理拿到session_key,最後通過app_id,session_key,iv,encryptedData(用戶同意授權errMsg返回‘getPhoneNumber:ok’)