微信小程序:userInfoReadyCallback介绍-小程序获取用户信息无法得到问题
Posted 慕城蓝就
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序:userInfoReadyCallback介绍-小程序获取用户信息无法得到问题相关的知识,希望对你有一定的参考价值。
app.js中的userInfoReadyCallback方法,定义在page.js中,也是够了
(因为网络获取数据是异步的,保证数据传递)
app.js
// 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting[‘scope.userInfo‘]) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码出 unionId this.globalData.userInfo = res.userInfo // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } })
page.js
onLoad: function () { if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInfo, hasUserInfo: true }) } else if (this.data.canIUse){ // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 app.userInfoReadyCallback = res => { this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } } else { // 在没有 open-type=getUserInfo 版本的兼容处理 wx.getUserInfo({ success: res => { app.globalData.userInfo = res.userInfo this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) } }
以上是关于微信小程序:userInfoReadyCallback介绍-小程序获取用户信息无法得到问题的主要内容,如果未能解决你的问题,请参考以下文章