解決微信小程序中在其他頁面無法使用app.js中獲取的userInfo或openid的問題


解決微信小程序中在其他頁面無法使用app.js中獲取的userInfo或openid的問題

 

https://blog.csdn.net/mayuko2012/article/details/78252870

Hades_Dev 2017-10-16 18:53:12 19029 收藏 7
展開
問題
最近寫小程序中,在app.js里獲取用戶的openid和userinfo,並存儲為全局變量:

getUserInfo: function () {
var that = this
wx.getUserInfo({
success: function (res) {
console.log('用戶信息', res.userInfo)
that.globalData.userInfo = res.userInfo
}
})
},
1
2
3
4
5
6
7
8
9
然而當在index中調用getApp().globalData.userOpenid時卻返回為空值。

原因
因為wx.getUserInfo為異步獲取的信息。

解決方式
將getuserInfo改為回調函數:

getUserInfo: function (cb) {
var that = this
if (this.globalData.userInfo) {
typeof cb == "function" && cb(this.globalData.userInfo)
} else {
wx.getUserInfo({
success: function (res) {
console.log('用戶信息', res.userInfo)
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
在其他需要使用userinfo的頁面中通過getApp().getUserInfo(function(userinfo){console.log(userinfo);})這種方式調用。

或者在onload函數中:

onLoad: function (options) {
var that = this
getApp().getUserOpenid(function (openid) {
that.setData({
userName: getApp().globalData.userInfo.nickName,
userOpenid: openid
})
console.log('用戶openid', that.data.userOpenid)
})

},
1
2
3
4
5
6
7
8
9
10
11

————————————————
版權聲明:本文為CSDN博主「Hades_Dev」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mayuko2012/java/article/details/78252870


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM