解决微信小程序中在其他页面无法使用app.js中获取的userInfo或openid的问题

摘要:
原因因为wx.getUserInfo为异步获取的信息。解决方式将getuserInfo改为回调函数:getUserInfo:function{varthat=thisif{typeofcb=="function"&&cb}else{wx.getUserInfo}},1234567891011121314在其他需要使用userinfo的页面中通过getApp().getUserInfo这种方式调用。

解决微信小程序中在其他页面无法使用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

免责声明:文章转载自《解决微信小程序中在其他页面无法使用app.js中获取的userInfo或openid的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu18安装python3, pip3并配置国内源Sketchup二次开发API之Toolbar类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证

IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证 原文:http://docs.identityserver.io/en/release/quickstarts/3_interactive_login.html 目 录 上一篇:IdentityServer4 中文文档 -10- (快速入门...

前端通过js获取微信公众号用户的唯一标识符openId

微信公众号程序开发的时候,获取用户信息的时候,需要用到用户的openId,openId是微信用户的唯一标识符,这个操作可以后台实现也可以前端实现,之前项目里是通过后台来获取的,好像用到了一些三方的包,然后我抽空看了一下微信开发文档,发现通过前端获取openId也很简单,如下所示: 一、先附上微信公众号开发文档https://developers.weix...

微信开发笔记:获取用户openid,以及用户头像昵称等信息

微信开发的时候有一个很便利的途径来进行一个用户的一步注册登录,就是使用用户的微信信息来直接进行登陆,可以省去很多不必要的麻烦。那具体这些信息是如何来获取的呢? 首先呢,我们需要对微信进行一个授权,让微信页面有权限来读取我们的用户信息: $redirect_uri = urlencode($url); //设置授权页面,此处填写回调的授权页面地址 $scop...

Django微信小程序后台开发教程

本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698Django微信小程序后台开发教程1 申请小程序,创建hello world小程序2 添加交互框和按钮3 在服务器配置hello django4 实现计算器接口5 配置服务器将后端与微信小程序连接5.1 uwsgi配置5.2 htt...

CocosCreator上的游戏(调试)发布到微信小程序

1.下载CocosCreator,微信开发者工具 官网地址:http://www.cocos.com/download 官网下载:https://developers.weixin.qq.com/minigame/dev/devtools/download.html 2.安装 和普通的软件安装一样,这里博主就不多说了。 3.打开CocosCreator...

微信支付jsapi

20200701微信支付 JsApi(在手机微信中打开进行支付) 1.引入api包 下载php版本API https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 注: 1.tp5.1框架下,将API文件中子文件夹放入extend/wxpay中 2.若使用框架,请以public为当前路径,进...