请先看下表:
名称 |
功能说明 |
页面栈变动 |
是否与 TAB 兼容 |
切换顶部 TAB 选中项 |
切换前的 TAB 页面栈退到只剩 1 个页面,切换到新 TAB 的页面栈 |
是 |
|
my.qn.switchTabEx | 切换左侧导航菜单选中项 | 是 |
|
关闭当前所有页面,跳转到应用内的某个指定页面 |
销毁所有页面栈,新打开的页面视为无 TAB 模式的首页 |
否 |
|
关闭当前页面,跳转到应用内的某个指定页面 |
维持当前页面栈不变,将最新的页面替换为新的页面,不增加页面栈深度。但是此 API 不支持 TAB 模式的页面,会认为新打开的页面为无 TAB 模式的页面 |
否 |
|
从当前页面,跳转到应用内的某个指定页面 |
在当前 TAB 的页面栈追加 1 个页面 |
是 |
|
关闭当前页面,返回上一级或多级页面 | 在当前 TAB 的页面栈回退 1 个页面 |
是 |
my.reLaunch 和 my.redirectTo 都是针对无 TAB 模式页面的。在移动端,如果当前处于 TAB 模式,使用这两个 API 后,TAB 会被隐藏,当前小程序会成为一个无 TAB 小程序。
在 PC 端,如果当前是有 TAB 模式的,是不能通过这两个 API 切换为无 TAB 模式的;而这两个 API 在跳转完成后会认为当前页面是无 TAB 页面——这会引发一系列问题,会导致页面无响应。因此,如果当前小程序使用了 TAB,请通过 my.switchTab、my.qn.switchTabEx 来切换,通过 my.navigateTo、my.navigateBack 进行页面跳转、回退,避免使用 my.reLaunch 和 my.redirectTo。如果当前小程序是无 TAB 模式的,则可使用上述全部 API,不受影响。