附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?

最近好多小夥伴在使用getUserInfo獲取小程序用戶暱稱和頭像時,圖然變成了下面這樣。小程序

錯誤圖示

附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
不少小夥伴確定就疑慮了,明明我代碼沒有作任何改動啊,怎麼忽然就這樣了呢。還記得咱們以前應該長這樣啊。
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
石頭哥最近也遇到這樣的問題了,我第一時間想到的緣由有兩個
1,微信官方服務器掛了(機率很小)
2,微信又改規則了。。。微信小程序

帶着這樣的疑慮,去問了下微信小程序官方人員。獲得的答案是。。。

附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
心理一萬個。。。。。 哎,沒辦法,既然官方說改規則,我們做爲弱勢羣體,只能跟着官方規則來改了啊。緩存

代碼改動

好在代碼改動量不是很大,基本上改動5行代碼就能夠完事了。下面就來教你們如何改動代碼吧。服務器

1,先來看看老代碼

附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
js裏的老代碼
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
能夠看到咱們用老代碼,獲取的就是下面這樣灰色的頭像和 微信用戶 這樣的暱稱
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?微信

2,認識wx.getUserProfile

其實這個wx.getUserProfile和咱們以前使用button結合open-type="getUserInfo" 和bindgetuserinfo事件獲取用戶信息沒有太大區別,因此咱們先來認識下wx.getUserProfile
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
這樣改動其實還有點點好處,就是咱們只須要在點擊事件裏調用wx.getUserProfile就能夠調起受權彈窗,不必非得在button組件裏使用點擊事件了。xss

解決問題的代碼

1,wxml裏的代碼改動

附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?

2 js裏的代碼改動

附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
這裏咱們主要是使用ide

wx.getUserProfile({
      desc: '用於完善會員資料', // 聲明獲取用戶我的信息後的用途,後續會展現在彈窗中,請謹慎填寫
      success: (res) => {
        console.log("獲取用戶信息成功", res)
      },
      fail: res => {
        console.log("獲取用戶信息失敗", res)
      }
})

能夠看到能成功的調起受權彈窗了
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
而且能夠獲取真實的暱稱了
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
其實到這裏咱們就改造好了,其實改造起來也就幾行代碼的事,麻煩的就是咱們的小程序要由於這個改動要從新提交審覈了。。。。3d

補充知識點:保存用戶信息到緩存

若是咱們每次進入頁面都讓用戶點擊受權,就有點太煩鎖了,其實能夠在第一次受權成功獲取用戶信息的時候把數據緩存在本地緩存的。下面就來教你們如何緩存用戶信息。code

代碼以及完整的註釋都貼出來給到你們
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
主要就是要調用
wx.setStorageSync存數據到本地緩存
wx.getStorageSync取緩存數據xml

wxml頁面的代碼也貼出來給到你們
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
還有咱們的wxss樣式
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?
到這裏咱們就把官方的這個坑給填好了。
附解決方案,小程序獲取的用戶信息中暱稱圖然變成了「微信用戶」,並且頭像也顯示不了?

相關文章
相關標籤/搜索