mp_navigate
Navigate within a WeChat Mini Program and return the active page path and query after navigation. Supports multiple transition types like navigateTo, redirectTo, reLaunch, switchTab, and navigateBack.
Instructions
在小程序内导航并返回导航后的 activePage(path+query)。返回的 activePage 是这次导航 resolve 的真实当前页,可直接信任,无需再调 mp_currentPage 或 mp_evaluate 交叉校验路由。
transition 怎么选:
navigateTo(默认):压栈打开新页,可 navigateBack 返回。
redirectTo:关掉当前页再打开,不入栈。
reLaunch:关掉所有页栈后打开(回首页 / 重置状态用)。
switchTab:仅用于 app.json tabBar 里注册的 tab 页,且不支持 query;跳非 tabBar 页会报 'can not switch to no-tabBar page' —— 这种情况改用 navigateTo。(不确定哪些是 tab 页时,custom-tab-bar 项目 tabBar 可能为空,需查 app.json 的 tabBar.list 或 pages。)
navigateBack:返回上一页,此时整个省略 path(切勿传空字符串 ""——会被 schema 当作非法 path 拒绝);其余 transition 都必须传 path。
query 用 query 参数传(对象,如 {id:'1'}),会自动拼到 url,不要手动拼进 path;switchTab 除外。
⚠️ waitMs 是 dumb sleep,不是等条件。时序敏感场景(onShow 鉴权 / SSE 初始化 / 异步 setData)建议 waitMs 留小(如 500 给 transition 过渡),再用 mp_pollUntil 等具体条件就绪。若 waitMs 阶段超时,错误里会带 currentRoute 帮你判断导航是否其实已生效。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| query | No | ||
| waitMs | No | ||
| connection | No | 可选连接覆盖(不传则用默认会话)。可用字段:mode(launch|connect)、cliPath、projectPath、wsEndpoint、timeout、port(【自动化端口】→ cli auto --auto-port,默认 9420;不是 IDE HTTP 服务端口,别把 IDE 服务端口传进来)、account、ticket、trustProject、args、cwd、autoClose、autoLaunch、launchTimeout、connectTimeout。 | |
| transition | No | navigateTo |