问题模块 |
---|
API和组件 |
我在APP.js中条用一个验证用户登录的方法,如果用户未登录跳转到登录页面 使用了 wx.redirectTo 方法,结果在PC端开发中好用,android手机好用但是在IOS手机上就失效了,我在方法中放了 fail 和 complete 两个回调函数结果两个回调函数都执行了,我想知道是什么问题。忘详细解答!!!
App({ globalData: { uid: '' }, onLaunch: function () { this .getLoginUser(); }, getLoginUser : function (){ let uid = Boolean( this .globalData.uid); if (!uid){ console.log( "用户未登录" ) wx.redirectTo({ url: 'pages/login/login' , fail: function (){ console.log( '跳转失败' ) }, complete: function (){ console.log( '跳转成功' ) } }) } }, getUserInfo: function (cb) { var that = this ; if ( this .globalData.userInfo) { typeof cb == "function" && cb( this .globalData.userInfo) } else { //调用登录接口 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo typeof cb == "function" && cb(that.globalData.userInfo) } }) } }) } } }) |
网友回复
Justin:
wx.navigateTo({
url:
'pages/login/login'
,
success: function(res){
},
fail: function() {
},
complete: function() {
}
})
ekong:
嗯,这个,你的程序逻辑和时序似乎有点问题:1)app onlaunch的时候,首页页面还没有生成,而wx.redirectto是“关闭当前页面,跳转到应用内的某个页面”;2)你的程序逻辑,是在第一个页面还没有生成就想跳转到另一个页面,那个uid总是空的嘛。逻辑上,应该是先调用wx.login(先调用getuserinfo),判断用户是否同意登录,再决定是否跳到另一个页面撒,或者,在首页设置一个登录按钮
胖子:
fail: function (err) { console.error(err) }
把这个错误信息输出来看看
Ace??:
你的登录页是不是在tabBar中啊