最近好多小夥伴在使用getUserInfo獲取小程序用戶暱稱和頭像時,圖然變成了下面這樣。小程序
不少小夥伴確定就疑慮了,明明我代碼沒有作任何改動啊,怎麼忽然就這樣了呢。還記得咱們以前應該長這樣啊。
石頭哥最近也遇到這樣的問題了,我第一時間想到的緣由有兩個
1,微信官方服務器掛了(機率很小)
2,微信又改規則了。。。微信小程序
心理一萬個。。。。。 哎,沒辦法,既然官方說改規則,我們做爲弱勢羣體,只能跟着官方規則來改了啊。緩存
好在代碼改動量不是很大,基本上改動5行代碼就能夠完事了。下面就來教你們如何改動代碼吧。服務器
js裏的老代碼
能夠看到咱們用老代碼,獲取的就是下面這樣灰色的頭像和 微信用戶 這樣的暱稱
微信
其實這個wx.getUserProfile和咱們以前使用button結合open-type="getUserInfo" 和bindgetuserinfo事件獲取用戶信息沒有太大區別,因此咱們先來認識下wx.getUserProfile
這樣改動其實還有點點好處,就是咱們只須要在點擊事件裏調用wx.getUserProfile就能夠調起受權彈窗,不必非得在button組件裏使用點擊事件了。xss
這裏咱們主要是使用ide
wx.getUserProfile({ desc: '用於完善會員資料', // 聲明獲取用戶我的信息後的用途,後續會展現在彈窗中,請謹慎填寫 success: (res) => { console.log("獲取用戶信息成功", res) }, fail: res => { console.log("獲取用戶信息失敗", res) } })
能夠看到能成功的調起受權彈窗了
而且能夠獲取真實的暱稱了
其實到這裏咱們就改造好了,其實改造起來也就幾行代碼的事,麻煩的就是咱們的小程序要由於這個改動要從新提交審覈了。。。。3d
若是咱們每次進入頁面都讓用戶點擊受權,就有點太煩鎖了,其實能夠在第一次受權成功獲取用戶信息的時候把數據緩存在本地緩存的。下面就來教你們如何緩存用戶信息。code
代碼以及完整的註釋都貼出來給到你們
主要就是要調用
wx.setStorageSync存數據到本地緩存
wx.getStorageSync取緩存數據xml
wxml頁面的代碼也貼出來給到你們
還有咱們的wxss樣式
到這裏咱們就把官方的這個坑給填好了。