wx.redirectTo今天开始部分用户无法正常跳转
发布于 5 年前 作者 li93 1189 次浏览 来自 问答

团队尝试了半天无法定位情况,紧急求救。

  1. 个别用户今天集中反馈小程序中异常,定位之后发现是 代码中 wx.redirectTo没有生效 代码如下


  2. var a=getCurrentPages().length
    var that = this
    this.setData({ debug: a+'  /pages/runner/runner?raceid=' + app.raceid})
    wx.redirectTo({
      url: '/pages/runner/runner?raceid=' + app.raceid,
      fail:function(res){
        that.setData({debug:JSON.stringify(res)})
      }
    })
    最后debug展示 页面深度2 ,跳转url正常无误,并且fail并没有被调起。但事实页面并不跳转
  3. 现在有一个用户反馈机型iphone6s,版本是最新的6.5.8,但同样的版本iOS中我们无法复现,但仍然有其他用户陆续反馈有这个问题。

还请微信团队救命!

5 回复

最后update。。。。 onReady() 也是一样问题

并没有修复啊.我到现在redirectTo还是不跳转

再次补充:setTimeout(this.go, 1000) timeout一秒成功, setTimeout(this.go, 500) 半秒就无法跳转了,看来是因为wx.redirect在最近的实现中更依赖某个页面生命周期的数据!但onShow从理论上不应该存在这个问题了!再次请小程序团队尽快查实。

在修复,预计今晚-明天解决

update : 目前可以定位是6.5.8版本,如果昨天用户打开过小程序,微信进程没有结束过,小程序还是一切正常的;如果杀掉了微信进程,就会发生wx.redirectTo()无法吊起的问题。  这里补充现在我们的发现:

  1. wxml里通过bindtap绑定  增加setTimeout() 之后,是可以正常调用的。

  2. 我们的程序是在onLoad时候判断是否可以直接跳转页面;改成onShow也是一样。

目前我们采用了setTimeout之后跳转的临时解决方案,但这个不是根本解决的方法!这个问题真实存在,而且影响面很大!随着更多用户的微信进程重启,这样的问题会越来越多!

附上更完整的代码:

// Page(){
 onShow: function () {
    var that = this
 
    user_access = wx.getStorageSync('user_access_' + app.raceid)
    this.setData({ debug: JSON.stringify(user_access) + " " + app.raceid })
    if (user_access != "" && user_access != undefined) {
      this.setData({ debug: "go up" })
 
      if ("status" in user_access) {
        this.setData({ debug: "redirecting" })
        this.go()
      }
    } else {
      this.updatePage()
      this.setData({ stay: true })
    }
 
  },
  // 根据身份转向不同页面
  go: function(){
    var that = this
    this.setData({ debug: '/pages/runner/runner?raceid=' + app.raceid})
    wx.redirectTo({
      url: '/pages/runner/runner?raceid=' + app.raceid,
      fail:function(res){
        that.setData({debug:JSON.stringify(res)})
      }
    })
 
 
  },
// ...
//} //Page()
回到顶部