鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

安装依赖

ohpm install @hadss/hmrouter
ohpm install @hadss/hmrouter-transitions

检查在工程根目录下的 oh-package.json5 可以找到该依赖配置项

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

配置编译插件

修改工程根目录下的 hvigor/hvigor-config.json 文件,加入路由编译插件

{ "dependencies": { "@hadss/hmrouter-plugin": "^1.2.0-beta.0" }

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

修改工程根目录下的 hvigorfile.ts 使用路由编译插件

import { appTasks } from '@ohos/hvigor-ohos-plugin';
import { appPlugin } from "@hadss/hmrouter-plugin";

export default {
  system: appTasks,
  plugins: [appPlugin({ ignoreModuleNames: [ /** 不需要扫描的模块 **/ ] })]
};

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

初始化路由框架

在 UIAbility 中初始化路由框架

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    // 日志开启需在init之前调用,否则会丢失初始化日志
    HMRouterMgr.openLog("INFO")
    HMRouterMgr.init({
      context: this.context
    })
  }
}

找到工程入口 Enrty 下的 EntryAbility.ets 添加配置

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

定义路由入口

需要在页面中定义一个 HMNavigation 容器,并设置相关参数

@Entry
@Component
export struct Index {
  modifier: MyNavModifier = new MyNavModifier();

  build() {
    // @Entry中需要再套一层容器组件,Column或者Stack
    Column(){
      // 使用HMNavigation容器
      HMNavigation({
        navigationId: 'MainNavigation', homePageUrl: 'HomePage',
        options: {
          standardAnimator: HMDefaultGlobalAnimator.STANDARD_ANIMATOR,
          dialogAnimator: HMDefaultGlobalAnimator.DIALOG_ANIMATOR,
          modifier: this.modifier
        }
      })
    }
    .height('100%')
    .width('100%')
  }
}

class MyNavModifier extends AttributeUpdater<NavigationAttribute> {
  initializeModifier(instance: NavigationAttribute): void {
    instance.hideNavBar(true);
  }
}

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

页面定义与路由跳转

使用 @HMRouter 标签定义页面

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

点击跳转事件

鸿蒙应用开发之路由管理-使用三方库HMRouter实现路由跳转

参考:

OpenHarmony三方库中心仓-HMRouter:

https://ohpm.openharmony.cn/#/cn/result?sortedType=relevancy&page=1&q=hmrouter

基于HMRouter的页面跳转:

https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-hmrouter

本页作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4817

(0)
czhdawn的头像czhdawn
上一篇 2025年7月20日 12:09
下一篇 2025年7月23日 23:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注