HarmonyOS鸿蒙Next中分别介绍采用router和Navigation路由,如何实现共享包内部页面跳转?

HarmonyOS鸿蒙Next中分别介绍采用router和Navigation路由,如何实现共享包内部页面跳转?

使用了SharedLibrary,里面有界面比如PageA、PageB,在主模块里面跳转到PageA,方法是router.pushUrl({url:"@bundle:包名/库名/ets/pages/PageA"}),这个没问题,我看能跳转了,如果想实现PageA跳转到PageB,这个该如何实现,麻烦发一下具体代码或者文档位置。

3 回复

使用router进行跨包跳转时,推荐使用[命名路由]进行跳转。

更多关于HarmonyOS鸿蒙Next中分别介绍采用router和Navigation路由,如何实现共享包内部页面跳转?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,共享包内页面跳转可通过两种方式实现:

  1. router方式: 使用router模块的pushUrl方法:
import router from '@ohos.router';
router.pushUrl({
  url: 'pages/SharePage'
})
  1. Navigation方式: 使用Navigation的push方法:
import { Navigation } from '@ohos.arkui.Navigation';
Navigation.push('SharePage');

两种方式都需在共享包的pages目录下配置目标页面路由。router更通用,Navigation针对ArkUI框架优化。

在HarmonyOS Next中,共享包内部页面跳转可以通过以下方式实现:

  1. 使用router方式跳转: 在PageA中跳转到PageB的代码示例:
import router from '@ohos.router';

// 在PageA中的跳转方法
router.pushUrl({
  url: "@bundle:包名/库名/ets/pages/PageB"
})
  1. 使用Navigation方式跳转: 如果使用Navigation组件,可以这样实现:
import { Navigation } from '@ohos.router';

Navigation.navigateTo({
  url: "@bundle:包名/库名/ets/pages/PageB"
})

关键点说明:

  1. 路径格式必须正确,包含完整的包名、库名和路径
  2. 两种方式都支持参数传递,可以在options中添加params
  3. 共享包中的页面路由需要在模块的配置文件中正确声明

文档参考位置:

  • 开发者文档中"路由与导航"章节
  • SharedLibrary开发指南中的页面跳转部分

注意确保PageB已在共享包的配置文件中正确注册,否则跳转会失败。

回到顶部