收藏
回答

wx.redirectTo失效!

问题模块
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)
            }
          })
        }
      })
    }
  }
})


最后一次编辑于  2017-05-26  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • Ace
    Ace
    2017-05-26

    你的登录页是不是在tabBar中啊

    2017-05-26
    赞同
    回复
  • 胖子
    胖子
    2017-05-26

    fail: function (err) { console.error(err) }


    把这个错误信息输出来看看

    2017-05-26
    赞同
    回复
  • ekong
    ekong
    2017-05-26

    嗯,这个,你的程序逻辑和时序似乎有点问题:1)app onlaunch的时候,首页页面还没有生成,而wx.redirectto是“关闭当前页面,跳转到应用内的某个页面”;2)你的程序逻辑,是在第一个页面还没有生成就想跳转到另一个页面,那个uid总是空的嘛。逻辑上,应该是先调用wx.login(先调用getuserinfo),判断用户是否同意登录,再决定是否跳到另一个页面撒,或者,在首页设置一个登录按钮

    2017-05-26
    赞同
    回复
  • Justin
    Justin
    2017-05-26

    wx.navigateTo({

          url: 'pages/login/login',

          success: function(res){

            

          },

          fail: function() {

            

          },

          complete: function() {

            

          }

        })


    2017-05-26
    赞同
    回复