app.globalData出现错误?
反正我也不知道是个什么情况……
代码如下,也就是微信小程序默认的启示界面的代码稍改了一下
onLoad: function (options) { console.log(app.globalData) if (app.globalData.userInfo) { this .setData({ userInfo: app.globalData.userInfo, hasUserInfo: true }) setTimeout( function (res){ wx.switchTab({ url: '/pages/My/MyPage/MyPage' , }) },2000) } 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 }) } }) } }, |
app.js
onLaunch: function () { // 检查是否更新 this .checkForUpdate() // 展示本地存储能力 var logs = wx.getStorageSync( 'logs' ) || [] logs.unshift(Date.now()) wx.setStorageSync( 'logs' , logs) // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting[ 'scope.userInfo' ]) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码出 unionId console.log(res.userInfo) this .globalData.userInfo = res.userInfo // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 if ( this .userInfoReadyCallback) { this .userInfoReadyCallback(res) } } }) } } }) }, |