Navigation路由相关的操作都是基于页面栈NavPathStack提供的方法进行,每个Navigation都需要创建并传入一个NavPathStack对象,用于管理页面。主要涉及页面跳转、页面返回、页面替换、页面删除、参数获取、路由拦截等功能。。
在HarmonyOS 中,路由跳转主要有以下几种方式:
路由操作
1. 页面跳转
1. 普通跳转:通过页面的name去跳转,并可以携带param
pushPath
pushPathByName
2. 带返回回调的跳转:跳转时添加onPop回调,能在页面出栈时获取返回信息
pushPathByName
3. 带错误码的跳转:跳转结束会触发异步回调,返回错误码信息
pushDestinationByName
路由跳转需要在Navigation组件中进行
@Entry
@Component
struct Index {
// 创建一个页面栈对象并传入Navigation
pageStack: NavPathStack = new NavPathStack()
build() {
Navigation(this.pageStack) {
}
.title('Main')
}
}
1. 普通跳转
通过页面的name去跳转,并可以携带param
this.pageStack.pushPath({ name: "PageOne", param: "PageOne Param" })
this.pageStack.pushPathByName("PageOne", "PageOne Param")
2. 带返回回调的跳转
this.pageStack.pushPathByName('PageOne', "PageOne Param", (popInfo) => {
console.log('Pop pag