HarmonyOS 鸿蒙Next模块之间页面相互跳转需求

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next模块之间页面相互跳转需求 希望能够在不使用UIAbility的情况下,能够模块化管理代码,并且各个模块之间会存在相互路由跳转的情况。当前的HSP和HAR包,都需要导入依赖,相互跳转就会存在循环依赖的问题。

3 回复

采用HSP进行模块管理,可以实现页面之间的跳转。无需导入导包即可跳转,不能构成循环依赖。

方式一:所有跳转到hsp内的页面需要使用特定的格式跳转:’@bundle:包名(bundleName)/模块名(moduleName)/路径/页面所在的文件名(不加.ets后缀)’

方式二:正常entry内模块路由跳转:‘pages/页面所在的文件名(不加.ets后缀)’

方式三:router提供router.pushNamedRoute()可以跳转到hsp中对应的页面,需要在hsp中的页面@Entry自定义命名:@Entry({ routeName : ‘myPage’ }),在entry包中需要跳转的页面中引入命名路由的页面。该方式与codelinter规范冲突,等后期解决再使用

  • entry跳转到hsp页面:使用方式一

  • hsp跳转到entry页面:使用方式二

  • hsp跳转到hsp页面:使用方式一

更多关于HarmonyOS 鸿蒙Next模块之间页面相互跳转需求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


动态路由跳转。。。不用手动写路由表。。动态import也不用担心循环依赖

在HarmonyOS(鸿蒙)系统中,实现Next模块之间页面的相互跳转,主要依赖于ArkUI框架提供的页面导航能力。以下是实现页面跳转的基本方法:

  1. 定义页面路由:在config.json中配置页面路由信息,确保每个页面都有一个唯一的URL路径。

  2. 使用Navigator组件:在ArkUI中使用@ohos.ability.Navigator组件进行页面跳转。通过调用pushreplace方法,可以实现向目标页面跳转,并传递必要的数据。

  3. 页面间数据传递:在跳转时,可以通过options参数携带数据。在目标页面中,通过this.$appContext.getIntent().getParams()方法获取传递的数据。

  4. 返回操作:如果需要从目标页面返回,可以调用Navigatorpop方法。同时,可以在返回时携带数据回原页面。

  5. 处理生命周期:在页面跳转时,原页面和目标页面都会经历相应的生命周期方法,如onPageShowonPageHide等,开发者需要在这些方法中处理相应的逻辑。

请确保所有页面都已正确注册,并且路由信息配置无误。同时,注意处理好页面间的数据传递和生命周期管理,以避免出现数据丢失或页面状态异常的问题。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部