团队尝试了半天无法定位情况,紧急求救。
个别用户今天集中反馈小程序中异常,定位之后发现是 代码中 wx.redirectTo没有生效 代码如下
最后debug展示 页面深度2 ,跳转url正常无误,并且fail并没有被调起。但事实页面并不跳转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)})
}
})
现在有一个用户反馈机型iphone6s,版本是最新的6.5.8,但同样的版本iOS中我们无法复现,但仍然有其他用户陆续反馈有这个问题。
还请微信团队救命!
在修复,预计今晚-明天解决
并没有修复啊.我到现在redirectTo还是不跳转
最后update。。。。 onReady() 也是一样问题
再次补充:setTimeout(this.go, 1000) timeout一秒成功, setTimeout(this.go, 500) 半秒就无法跳转了,看来是因为wx.redirect在最近的实现中更依赖某个页面生命周期的数据!但onShow从理论上不应该存在这个问题了!再次请小程序团队尽快查实。
update : 目前可以定位是6.5.8版本,如果昨天用户打开过小程序,微信进程没有结束过,小程序还是一切正常的;如果杀掉了微信进程,就会发生wx.redirectTo()无法吊起的问题。 这里补充现在我们的发现:
wxml里通过bindtap绑定 增加setTimeout() 之后,是可以正常调用的。
我们的程序是在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()