小程序受權用戶我的信息流程

小程序社區的提問

快速切換tab致使wx.getSetting拿不到已經受權的信息小程序

業務場景

咱們的受權流程是:在用戶進入小程序的時候就讓用戶受權用戶基本信息。雖然小程序官方建議在須要用戶的暱稱、頭像等信息的時候再去讓用戶受權。微信

受權變更

因爲小程序將受權用戶基本信息改爲了只能經過button調用,因此在這次小程序的開發中,咱們自定義了一個受權彈框(圖一),經過彈框上的【點擊受權】按鈕去調用微信受權彈框(圖二)。ide

自定義受權彈框:post

clipboard.png

微信受權彈框:spa

clipboard.png

實現

方案1:在tabbar頁和具備分享功能的頁面的onShow中調用wx.getSetting判斷是否已經受權,若是已經受權,隱藏自定義受權彈框;不然,顯示自定義受權彈框。代碼以下:code

小程序片斷1: wechatide://minicode/a1GSyHmP7o10

存在的問題:在已經受權用戶信息的狀況下快速切換tab會出現wx.getSetting返回的res.authSetting['scope.userInfo']爲空的狀況,從而致使自定義受權彈框的顯示。但此時點擊自定義受權中的【點擊受權】按鈕又不能調起微信受權彈框,由於以前已經受權過了。猜想是由於頻繁調用wx.getSetting的緣由。blog

方案2:在tabbar頁的onLoad中調用wx.getSetting,這樣就避免了切換tabbar的時候頻繁調用wx.getSetting。而後將是否受權的信息(authInfoDlg)存在全局,在tabbar頁的onShow中根據authInfoDlg肯定是否顯示自定義受權彈框。代碼以下:token

小程序片斷2: wechatide://minicode/N4Yz4WmK7W43

相關文章
相關標籤/搜索