当前位置: 首页 > news >正文

HarmonyOs @hadss/hmrouter路由接入

参考文档:官方文档

在根目录oh-package.json5配置

{"dependencies": {"@hadss/hmrouter": "^1.0.0-rc.11"}
}

加入路由编译插件

  1. hvigor/hvigor-config.json文件
{"dependencies": {"@hadss/hmrouter-plugin": "^1.0.0-rc.11"// 使用npm仓版本号},// ...其余配置
}
  1. 工程根目录的hvigorfile.ts
import { appTasks } from '@ohos/hvigor-ohos-plugin';
export default {system: appTasks,plugins:[]
}
  1. entry模块的hvigorfile.ts
import { hapTasks } from '@ohos/hvigor-ohos-plugin';
import { hapPlugin } from '@hadss/hmrouter-plugin';export default {system: hapTasks,plugins: [hapPlugin()] // 使用HMRouter标签的模块均需要配置,与模块类型保持一致
}

工程配置

build-profile.json5

{"app": {"products": [{"name": "default","signingConfig": "default","compatibleSdkVersion": "5.0.0(12)","runtimeOS": "HarmonyOS","buildOption": {"strictMode": {"useNormalizedOHMUrl": true  // 重点这个设置为true}}}],// ...其余配置}
}

初始化路由框架

大致位置可通过windowStage.loadContent来查找,具体怎么找启动页面可参考上篇文章

// PhoneAbility.ets
export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {HMRouterMgr.init({context: this.context})}
}

定义路由入口

// Index.ets
import { HMDefaultGlobalAnimator, HMNavigation } from "@hadss/hmrouter";
import { AttributeUpdater } from "@kit.ArkUI";@Entry
@Component
struct Index {modifier: MyNavModifier = new MyNavModifier();build() {// @Entry中需要再套一层容器组件,Column或者StackColumn(){// 使用HMNavigation容器HMNavigation({navigationId: 'mainNavigation', homePageUrl: 'YDMainPage',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);}
}

路由定义

import { HMRouter } from "@hadss/hmrouter"
// 通过@HMRouter来定义路由,无需在main_pages.json中定义
@HMRouter({pageUrl: "MainPage"
})
@Component
export struct MainPage {build() {Column(){Text("首页").fontSize(30).fontWeight(FontWeight.Bold)}.width('100%').height('100%').backgroundColor("#f4f5f9").justifyContent(FlexAlign.Center)}
}

这里插件就引入完成了,可正常使用了,其余使用可参考官网文档
注意⚠️:因为这个插件,预览器则无法正常使用,需在模拟器查看

在这里插入图片描述
这个表示预览器不兼容

相关文章:

  • 外观模式:简化复杂系统接口的设计模式
  • RS232转ProfibusDP网关:连接未来传感器的关键
  • 4.1 融合架构设计:LLM与Agent的协同工作模型
  • 2025上海车展:光峰科技全球首发“灵境”智能车载光学系统
  • 倚光科技:柱面透镜加工工艺详解,解锁光学新境界
  • 构建企业官方网站有哪些必备因素?
  • vue3--手写手机屏组件
  • java Springboot使用扣子Coze实现实时音频对话智能客服
  • dockercompose文件仓库
  • Ubuntu22学习记录
  • 部署本地deepseek并在调用的详细步骤以及解决一些可能出现的问题(Windows,Linux, WSL)
  • 【数据可视化-30】Netflix电影和电视节目数据集可视化分析
  • 【记录手贱bug日常】IDEA 配置vmoptions后打不开,重新安装,删注册表均无用
  • ESP32_IDF_VScode安装多版本共存
  • 解决VSCode每次SSH连接服务器时,都需要下载vscode-server
  • HTML5 详细学习笔记
  • 【AI】基于OllamaSharp与.NET Core API的高效LLM查询实现
  • Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
  • 针对 Spring Boot 应用中常见的查询场景 (例如:分页查询、关联查询、聚合查询) 如何进行 SQL 优化?
  • [论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models
  • 巴印在克什米尔发生交火
  • 最新研究挑战男性主导说:雌性倭黑猩猩联盟对付雄性攻击,获得主导地位
  • 潘功胜:一季度中国经济开局良好,金融市场展现出较强韧性
  • 限时离境、关闭领空、暂停贸易,巴基斯坦宣布一系列对印反制措施
  • 漫画阅读APP刊载1200余部侵权作品:20人获刑,案件罚金超千万元
  • 董明珠的接班人还是董明珠