当前位置: 首页 > 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)}
}

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

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

http://www.xdnf.cn/news/115453.html

相关文章:

  • 【C++】模版初阶:函数模板、类模板
  • 机器学习基础 - 分类模型之SVM
  • 解决vue3写echarts不能根据屏幕大小缩
  • k8s 1.26版部署
  • TiDB 深度解析与 K8S 实战指南
  • centos挂载新的硬盘
  • Linux学习笔记之动静态库
  • 全行业软件定制:APP/小程序/系统开发与物联网解决方案
  • 机器人操作中的生成式 AI:综述(上)
  • 鸿蒙-状态管理V1和V2在ForEach循环渲染的表现
  • 查看系统是debian还是redhat
  • Android学习总结之Room篇
  • 第四章: 服务集成抽象
  • 把一个 PyTorch 的图像张量转换成 NumPy 格式,并按照正确的维度顺序显示出来
  • 《Pinia 从入门到精通》Vue 3 官方状态管理 -- 进阶使用篇
  • 【数据结构】哈希表
  • 使用深度 Q 学习解决Lunar lander问题
  • Linux424 chage密码信息 gpasswd 附属组
  • 数据库数据删除与修改实验
  • Flink 消费 Kafka 数据流的最佳实践
  • 4.ArkUI TextInput的介绍和使用
  • 多语言虚拟币海外游戏娱乐平台源码详解(整合篇)
  • 上岸率85%+,25西电先进材料与纳米科技学院(考研录取情况)
  • 【投屏软件】手机投屏软件
  • 省时省力的AI批量原创SEO文章生成工具解放双手
  • CentOS 7 基于 Nginx 的 HTML 部署全流程指南
  • 18.应用聚合、指标显示、应用状态,从Heimdall说起(二)
  • 十分钟恢复服务器攻击——群联AI云防护系统实战
  • 【专题刷题】二分查找(一):深度解刨二分思想和二分模板
  • PostgreSQL 数据库备份与恢复全面指南20250424