我在app.js的
onLaunch中通过
wx.request({
url: 'https://www.XXXX.XX/api/Minipro/sns',
data: {
code: res.code
},
success: function (res) {
wx.setStorageSync('snsInfo', res)
}
})
获取了微信用户的信息,并写入到snsInfo的Storage中。
接着在页面的
onLoad中判断snsInfo是否有unionid
snsInfo = wx.getStorageSync('snsInfo')
//snsInfo = wx.getStorageSync('snsInfo')
//判断是否包含unionid,如果没有则跳转页面通过getUserInfo获取
if (typeof (snsInfo.data.unionid)=="undefined" ) {
console.log("=========无法获取unionid==============")
wx.navigateTo({
url: '/pages/index/userInfo',
})
return
}
如果没有unionid,则需要跳转到userInfo的页面去授权获取。
现在的问题是部分手机可以,部分手机无法正确跳转到授权界面。运维后台提示:
undefined is not an object (evaluating '(e=wx.getStorageSync("snsInfo")).data.unionid');at pages/index/index page lifeCycleMethod onLoad function
这个问题如何解决?调试不是很方便,普通用户调试只能通过正式版本测试,发布一个版本需要3个小时。。。。。
微信小程序开发问题解答
微信小程序开发者回答:
app.onLaunch和首页的onLoad是异步执行的。首页onLoad的时候可能请求还没成功,所以typeof (snsInfo.data.unionid) 会报这个错误
微信小程序开发者回答:
我是想解决报错的问题,因为很多客户端因为这个错误无法跳转到授权界面!
谢谢!
微信小程序开发者回答:
这样就算授权了,也获取不到unionid,和授权无关吧?
微信小程序开发者回答:
授权的会在其他页面解决,就是想解决那个报错后无法跳转的问题!
本文网址:http://www.91bianli.com/weixinxiaochengxu/45149.html