附解決方案,小程序用戶昵稱突然變成了“微信用戶”,而且頭像也顯示不了?
最近好多小伙伴在使用getUserInfo獲取小程序用戶昵稱和頭像時(shí),圖然變成了下面這樣。
錯(cuò)誤圖示

很多小伙伴肯定就疑慮了,明明我代碼沒有做任何改動(dòng)啊,怎么突然就這樣了呢。還記得我們之前應(yīng)該長(zhǎng)這樣啊。

石頭哥最近也遇到這樣的問題了,我第一時(shí)間想到的原因有兩個(gè)
1,微信官方服務(wù)器掛了(概率很小)
2,微信又改規(guī)則了。。。
帶著這樣的疑慮,去問了下微信小程序官方人員。得到的答案是。。。

心理一萬個(gè)。。。。。 哎,沒辦法,既然官方說改規(guī)則,咱們作為弱勢(shì)群體,只能跟著官方規(guī)則來改了啊。
代碼改動(dòng)
好在代碼改動(dòng)量不是很大,基本上改動(dòng)5行代碼就可以完事了。下面就來教大家如何改動(dòng)代碼吧。
1,先來看看老代碼

js里的老代碼

可以看到我們用老代碼,獲取的就是下面這樣灰色的頭像和 微信用戶 這樣的昵稱

2,認(rèn)識(shí)wx.getUserProfile
其實(shí)這個(gè)wx.getUserProfile和我們之前使用button結(jié)合open-type=“getUserInfo” 和bindgetuserinfo事件獲取用戶信息沒有太大區(qū)別,所以我們先來認(rèn)識(shí)下wx.getUserProfile

這樣改動(dòng)其實(shí)還有點(diǎn)點(diǎn)好處,就是我們只需要在點(diǎn)擊事件里調(diào)用wx.getUserProfile就可以調(diào)起授權(quán)彈窗,沒必要非得在button組件里使用點(diǎn)擊事件了。
解決問題的代碼
1,wxml里的代碼改動(dòng)

2 js里的代碼改動(dòng)

這里我們主要是使用
可以看到能成功的調(diào)起授權(quán)彈窗了

并且可以獲取真實(shí)的昵稱了

其實(shí)到這里我們就改造好了,其實(shí)改造起來也就幾行代碼的事,麻煩的就是我們的小程序要因?yàn)檫@個(gè)改動(dòng)要重新提交審核了。。。。
補(bǔ)充知識(shí)點(diǎn):保存用戶信息到緩存
如果我們每次進(jìn)入頁面都讓用戶點(diǎn)擊授權(quán),就有點(diǎn)太煩鎖了,其實(shí)可以在第一次授權(quán)成功獲取用戶信息的時(shí)候把數(shù)據(jù)緩存在本地緩存的。下面就來教大家如何緩存用戶信息。
代碼以及完整的注釋都貼出來給到大家

主要就是要調(diào)用
wx.setStorageSync存數(shù)據(jù)到本地緩存
wx.getStorageSync取緩存數(shù)據(jù)
wxml頁面的代碼也貼出來給到大家

還有我們的wxss樣式

到這里我們就把官方的這個(gè)坑給填好了。
