微信小程序-getUserInfo回調(diào)的實(shí)例詳解
微信小程序-getUserInfo回調(diào)的實(shí)例詳解
前言:
這里就不吹噓微信小程序有多厲害了,畢竟也不是我寫的,直接談?wù)勎以谧鲂〕绦蜷_(kāi)發(fā)時(shí)遇到的奇異Bug。
getUserInfo多次調(diào)用:
對(duì)于wx.getUserInfo應(yīng)該很多開(kāi)發(fā)者都用過(guò),用于獲取用戶基本信息,前提是需要用戶授權(quán),如果用戶先前沒(méi)有授權(quán),則彈出一個(gè)提示框如下:

點(diǎn)擊允許后,我們就能拿到用戶信息,再進(jìn)行后面的一系列操作。這一切看起來(lái)都是那么美好,可是在某次運(yùn)行中,點(diǎn)允許授權(quán)后,程序并沒(méi)有按照我們的預(yù)期往下執(zhí)行。最后發(fā)現(xiàn)在其他的地方也調(diào)用一次了wx.getUserInfo方法,并且只執(zhí)行了其中一個(gè)授權(quán)成功的回調(diào)。假設(shè)是如下代碼:

結(jié)論:
1. 如果用戶已授權(quán): A B C都會(huì)被打印。
2. 用戶未授權(quán):點(diǎn)擊允許后,A B C三個(gè)其一會(huì)被隨機(jī)打印。
當(dāng)然最好不要在多處同時(shí)調(diào)用wx.getUserInfo方法,不然遇到這個(gè)問(wèn)題會(huì)很頭疼。我對(duì)這個(gè)問(wèn)題的看法是,多次調(diào)用getUserInfo方法只會(huì)產(chǎn)生一個(gè)彈窗的實(shí)例,所以點(diǎn)擊允許時(shí),只執(zhí)行一次回調(diào)也很正常,但是隨機(jī)執(zhí)行其中一個(gè)方法就很奇怪了。
解決方法:
1. 不同時(shí)調(diào)用wx.getUserInfo方法,需要同時(shí)調(diào)用的情況少之又少。
2. 封裝一個(gè)getUserInfo方法,把傳入的回調(diào)方法存入數(shù)組,在授權(quán)成功/失敗的回調(diào)中遍歷調(diào)用后清空數(shù)組。
以下是測(cè)試環(huán)境:
微信開(kāi)發(fā)者工具版本:v1.01.170925
基礎(chǔ)庫(kù)版本: 1.3.0
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 微信小程序獲取用戶信息的兩種方法wx.getUserInfo與open-data實(shí)例分析
- 微信小程序Getuserinfo解決方案圖解
- 微信小程序如何通過(guò)用戶授權(quán)獲取手機(jī)號(hào)(getPhoneNumber)
- 微信小程序用戶授權(quán)彈窗 拒絕時(shí)引導(dǎo)用戶重新授權(quán)實(shí)現(xiàn)
- 微信小程序用戶授權(quán)、位置授權(quán)及獲取微信綁定手機(jī)號(hào)
- 微信小程序如何再次獲取用戶授權(quán)的方法
- 微信小程序用戶授權(quán),以及判斷登錄是否過(guò)期的方法
- 微信小程序--獲取用戶地理位置名稱(無(wú)須用戶授權(quán))的方法
- 詳解微信小程序開(kāi)發(fā)用戶授權(quán)登陸
- PHP實(shí)現(xiàn)微信小程序用戶授權(quán)的工具類示例
- 微信小程序 wx.getUserInfo引導(dǎo)用戶授權(quán)問(wèn)題實(shí)例分析
相關(guān)文章
微信小程序 常見(jiàn)問(wèn)題總結(jié)(4058,40013)及解決辦法
這篇文章主要介紹了微信小程序 常見(jiàn)問(wèn)題總結(jié)及解決辦法的相關(guān)資料,這里首先對(duì)微信小程序的結(jié)構(gòu)進(jìn)行了介紹,然后對(duì)常見(jiàn)問(wèn)題進(jìn)行說(shuō)明講解,需要的朋友可以參考下2017-01-01
5種 JavaScript 方式實(shí)現(xiàn)數(shù)組扁平化
這篇文章主要介紹5種 JavaScript 方式實(shí)現(xiàn)數(shù)組扁平化,雖說(shuō)只有5種方法,但是核心只有一個(gè)就是遍歷數(shù)組arr,若arr[i]為數(shù)組則遞歸遍歷,直至arr[i]不為數(shù)組然后與之前的結(jié)果concat。 想具體了解的小伙伴那請(qǐng)看下面文章內(nèi)容吧2021-09-09
競(jìng)態(tài)條件Race condition及如何避免的三種方案詳解
這篇文章主要為大家介紹了競(jìng)態(tài)條件Race condition及如何避免的三種方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
JavaScript設(shè)計(jì)模式之命令模式和狀態(tài)模式詳解
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式之命令模式和狀態(tài)模式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表
特殊字符、常規(guī)符號(hào)及其代碼對(duì)照表...2006-06-06
微信小程序 scroll-view組件實(shí)現(xiàn)列表頁(yè)實(shí)例代碼
這篇文章主要介紹了微信小程序 scroll-view組件實(shí)現(xiàn)列表頁(yè)實(shí)例代碼的相關(guān)資料,scroll-view組件介紹scroll-view是微信小程序提供的可滾動(dòng)視圖組件,其主要作用是可以用來(lái)做手機(jī)端經(jīng)常會(huì)看到的上拉加載 ,需要的朋友可以參考下2016-12-12
JavaScript中isPrototypeOf函數(shù)
這篇文章主要介紹了JavaScript中isPrototypeOf函數(shù),isPrototypeOf() 是 Object函數(shù)(類)的下的一個(gè)方法,用于判斷當(dāng)前對(duì)象是否為另外一個(gè)對(duì)象的原型,如果是就返回 true,否則就返回 false,下面來(lái)看看詳細(xì)內(nèi)容,需要的朋友可以參考一下2021-11-11

