詳細資訊看官方公告:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801
回收uni.getUserInfo介面可獲取使用者授權(返回的全部是匿名資料)
4月28日24時後釋出的新版本小程式,開發者呼叫wx.getUserInfo或<button open-type="getUserInfo"/>將不再彈出彈窗,直接返回匿名的使用者個人資訊,獲取加密後的openID、unionID資料的能力不做調整。
採用uni.getUserProfile 來授權返回微信使用者資訊
具體變化如下表:
2.uni.getUserInfo 介面呼叫方式
起初通過button 來獲取使用者資訊, 設定 open-type="getUserInfo"
<button open-type="getUserInfo" @getuserinfo="getUserInfo">微信授權登入(open-type 獲取)</button> js部分 getUserInfo(e) { if (e.detail.errMsg == 'getUserInfo:ok') { //對資料進行操作 console.log(e) } else { this.$operate.toast({ title: '授權失敗無法登入!' }) } },
或者 直接呼叫 uni.getUserInfo 來獲取資訊 在當前微信更新介面後,這2個介面將直接返回匿名使用者資料,不在彈窗提示
//js 部分 通過 @tap="userInfo" 呼叫 userInfo() { //獲取code uni.login({ provider: 'weixin', success(login) { console.log(login); //獲取使用者資訊 uni.getUserInfo({ provider: 'weixin', lang: 'zh_CN', success(user) { console.log(user); } }) } }) }
3.採用uni.getUserProfile 獲取資訊
不通過open-type 呼叫 而是使用 @tap=“goLogin” 或 bindtap="goLogin"呼叫的
<button @tap="goLogin">微信uni.getUserProfile 登入</button> //js goLogin() { // 獲取code 小程式專有,使用者登入憑證。 uni.login({ provider: 'weixin', success(login) { console.log(login); } }) // desc: '用於完善會員資料' 必填 宣告獲取使用者個人資訊後的用途,後續會展示在彈窗中 uni.getUserProfile({ desc: '用於完善會員資料', lang: 'zh_CN', success(user) { console.log(user); } }) },
4.獲取手機號 登入
獲取手機號 ,只能通過 button 按鈕點選來獲取 資訊 ,傳給後臺解析資料
<button open-type="getPhoneNumber" @getphonenumber="getUserPhone">微信手機號登入</button> js部分 //獲取使用者手機號 getUserPhone(e) { // 獲取code 小程式專有,使用者登入憑證。 uni.login({ provider: 'weixin', success(login) { console.log(login); } }) //手機號加密資料 if (e.detail.errMsg == 'getPhoneNumber:ok') { // 獲取 encryptedData 與 iv 傳給後臺進行解析 console.log(e) //傳給後端的引數 let data = { session_key: '後端返回微信 openid ', encryptedData: e.detail.encryptedData, iv: e.detail.iv, } } else { this.$operate.toast({ title: '授權失敗無法登入!' }) } }
在解析 加密資訊時,需先通過 uni.login獲取code並上傳給後臺,用來獲取微信 openid
4.驗證碼倒數計時登入
專案有時會用到驗證碼倒數計時,增加一個小玩意,有需要自取
css 樣式採用 ColorUI-UniApp