关于app.js和page.js方法执行顺序
问题:由于OpenId是在app.js的onlaunch方法请求获得。但是由于app.js和page.js是异步执行的,也就说可能当你还没执行完app.js中onlaunch的时候,page.js中的onload已经执行完了,如果你在page的onload中有需要用到openid的话,那就取不到值。
解决办法
if (self.userInfoReadyCallback) {
self.userInfoReadyCallback(res)
}
wx.login({
success: function(data) {
wx.request({
url:"",
method:"POST",
success: function(res) {
console.log('拉取openid成功', res.data)
self.globalData.openid = res.data.openid
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (self.userInfoReadyCallback) {
self.userInfoReadyCallback(res)
}
},
fail: function(res) {
console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
}
})
},
fail: function(err) {
console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
}
})
注:暂时只发现能用于登陆获取OpenId

浙公网安备 33010602011771号