微信小程序Getuserinfo解決方案圖解
問(wèn)題
在微信小程序開發(fā)中,獲取用戶信息是經(jīng)常會(huì)用到的!在之前,我們直接調(diào)用wx.getUserInfo接口,就可以直接獲取用戶的信息,然而為了安全考慮,從2018年4月30號(hào)開始,wx.getUserInfo接口不能直接調(diào)用(接口調(diào)整),需要使用<button open-type="getUserInfo"></button>
引導(dǎo)用戶主動(dòng)進(jìn)行授權(quán)操作,意外就是來(lái)的這么突然,防不勝防!??!
處理方法
1、<open-data></open-data> :只是簡(jiǎn)單的獲取信息用于顯示
其中,type="userAvatarUrl"是獲取用戶頭像,type="userNickName"是獲取用戶昵稱,具體使用詳情查看小程序開發(fā)文檔,此方法僅用于直接簡(jiǎn)單的展示用戶信息。
2、使用 <button open-type="getUserInfo">獲取用戶信息
小程序官方文檔有在說(shuō)明wx.getUserInfo 當(dāng)用戶未授權(quán)過(guò),調(diào)用該接口將直接報(bào)錯(cuò),即使調(diào)用該接口將直接jinru進(jìn)入fail的回調(diào); 當(dāng)用戶授權(quán)過(guò),可以使用該接口獲取用戶信息。
但是,如何有更好的用戶體驗(yàn)來(lái)引導(dǎo)用戶手動(dòng)調(diào)用此方法呢?這里思考了幾種實(shí)現(xiàn)方案:
1、在項(xiàng)目首頁(yè)直接調(diào)用getUserInfo方法,若從未授權(quán)過(guò),跳轉(zhuǎn)到授權(quán)頁(yè)面引導(dǎo)用戶手動(dòng)授權(quán)
在授權(quán)頁(yè)面authorize 寫入按鈕組件
并在js中,加入手動(dòng)點(diǎn)擊按鈕的方法,返回首頁(yè)
此方案可行,但是授權(quán)頁(yè)面就一個(gè)授權(quán)的按鈕未免顯得突兀些,進(jìn)一步做優(yōu)化方案。
考慮到是不是能夠直接通過(guò)條件渲染wx-if 在首頁(yè)多加一部分遮罩層作為引導(dǎo)用戶授權(quán)的頁(yè)面展示,因?yàn)橛脩羰褂眯〕绦蛞唤?jīng)授權(quán)以后,再次進(jìn)入小程序就不用授權(quán)了,也就是說(shuō)只有在用戶第一次使用小程序的時(shí)候才會(huì)引導(dǎo)用戶授權(quán)操作,所以這里考慮通過(guò)遮罩層來(lái)實(shí)現(xiàn)。
在首頁(yè)多加一個(gè)遮罩層
同時(shí)查閱微信小程序開發(fā)文檔在頁(yè)面加載后調(diào)用wx.getSetting方法可以獲取當(dāng)前用戶的設(shè)置,返回值中只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過(guò)的權(quán)限,這樣可以判斷用戶是否授權(quán)過(guò)權(quán)限
未授權(quán)授權(quán)遮罩層顯示
引導(dǎo)用戶授權(quán)后
hasUserInfo: true
遮罩層消失,完成授權(quán)。
微信修改getUSerInfo這個(gè)接口后確實(shí)不如之前直接進(jìn)入小程序自動(dòng)調(diào)用獲取用戶信息方便些,但是確實(shí)是為了加強(qiáng)安全性的考究,才通過(guò)按鈕的方式讓用戶自己主動(dòng)去授權(quán),雖然對(duì)于開發(fā)者我們來(lái)講不太習(xí)慣,但是對(duì)于加強(qiáng)了用戶信息的安全性,網(wǎng)絡(luò)信息安全確實(shí)是比較重要的一環(huán)。
總結(jié)
以上所述是小編給大家介紹的微信小程序Getuserinfo解決方案,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 微信小程序獲取用戶信息的兩種方法wx.getUserInfo與open-data實(shí)例分析
- 微信小程序-getUserInfo回調(diào)的實(shí)例詳解
- 微信小程序如何通過(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))的方法
- 詳解微信小程序開發(fā)用戶授權(quán)登陸
- PHP實(shí)現(xiàn)微信小程序用戶授權(quán)的工具類示例
- 微信小程序 wx.getUserInfo引導(dǎo)用戶授權(quán)問(wèn)題實(shí)例分析
相關(guān)文章
JavaScript判斷數(shù)字是否為質(zhì)數(shù)的方法匯總
這篇文章主要介紹了JavaScript判斷數(shù)字是否為質(zhì)數(shù)的方法匯總的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06前端項(xiàng)目中報(bào)錯(cuò)Uncaught?(in?promise)的解決方法
最近在做項(xiàng)目的時(shí)候控制臺(tái)報(bào)了一個(gè)錯(cuò)Uncaught(in promise) false,這篇文章主要給大家介紹了關(guān)于前端項(xiàng)目中報(bào)錯(cuò)Uncaught?(in?promise)的解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04js 調(diào)用父窗口的具體實(shí)現(xiàn)代碼
想要實(shí)現(xiàn)如題所示:父窗體需要頂一個(gè)show()方法,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07javascript 實(shí)現(xiàn)劃詞標(biāo)記劃詞搜索功能
在頁(yè)面中加上這串代碼就行了,同時(shí)還有搜索功能。2009-10-10PhotoSwipe異步動(dòng)態(tài)加載圖片方法
這篇文章主要為大家詳細(xì)介紹了PhotoSwipe異步動(dòng)態(tài)加載圖片方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08原生JS實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)方法(附帶封裝的運(yùn)動(dòng)框架)
下面小編就為大家?guī)?lái)一篇原生JS實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)方法(附帶封裝的運(yùn)動(dòng)框架)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無(wú)法序列化的問(wèn)題
JSON序列化指將JSON對(duì)象轉(zhuǎn)換為JSON字符串,J實(shí)現(xiàn)方式有兩種:一種是調(diào)用JSON對(duì)象內(nèi)置的stringify()函數(shù),一種是為對(duì)象自定義toJSON()函數(shù),本文重點(diǎn)介紹js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無(wú)法序列化的問(wèn)題,感興趣的朋友一起看看吧2024-01-01