reLaunch 后 success 中使用 navigateTo,提示触发上限
发布于 6 年前 作者 jingzou 19986 次浏览 来自 问答

因为业务场景需求,需要在业务流程结尾进行跳转到别的页面进行二次交易循环;

但是触发了 5个页面的限制(以下简称 满栈);

最后使用 reLaunch 重启并定位到 index/index 首页,用来释放掉 5个页面,然后再 navigateTo 跳转到需要页面;

然后Bug出现了, 在跳转的时候获取 getCurrentPages 为1, 但是触发了5个上限,之后手动点击又是可以跳转的;

推断为 reLaunch 后,  内存的释放也是一个异步队列里面完成的,并且调用 success callback 时释放内存并不一定完成;

才会造成, 在 reLaunch 后 success 里面调用 navigateTo 时内存尚未释放完成就执行了 success callback,

然后等待内存释放完毕之后, 手动点击跳转又可以;

现在只能做Hack,setTimeout 去执行 success callback 的 navigateTo 逻辑,但是这个值在不同手机上时间也不一致,

iPhoneSE 小于50ms, 但是iPhone6 上介于50ms ~ 110ms 之间; 官方是否能够解决这个问题,将success callback 的调用放到

内存释放完成后;

回到顶部