需要实现的效果
在小程序onLaunch中调用接口判断用户权限,若登录态失效则调用wx.reLaunch()跳转至登录页,正常情况下wx.reLaunch()会将页面栈清空,然后将登录页推入页面栈。
出现的问题
部分ios机型在跳转至登录页后,页面栈并没有清空,左上角依然保留去往首页的返回按钮。
解决方法
在官方社区翻找了相关问题后,得到一个可能的原因是在小程序启动到接口响应触发跳转这段时间内,底层的页面栈并没有完全就绪,在跳转后会导致无法清空页面栈。一个解决方案是把wx.reLaunch()放到setTimeout内去延迟进行,给底层留足准备页面栈的时间。
依然存在的问题
使用这样方法,在出现问题的机型中可以成功清空页面栈,但在跳转后返回按钮依然显示,隔了不足一秒后隐藏。可以猜测这一小段时间就是底层在准备页面栈并清空页面栈。