检查在工程根目录下的 oh-package.json5 可以找到该依赖配置项
配置编译插件
修改工程根目录下的 hvigor/hvigor-config.json 文件,加入路由编译插件
{ "dependencies": { "@hadss/hmrouter-plugin": "^1.2.0-beta.0" }
修改工程根目录下的 hvigorfile.ts 使用路由编译插件
import { appTasks } from '@ohos/hvigor-ohos-plugin';
import { appPlugin } from "@hadss/hmrouter-plugin";
export default {
system: appTasks,
plugins: [appPlugin({ ignoreModuleNames: [ /** 不需要扫描的模块 **/ ] })]
};
初始化路由框架
在 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 添加配置
定义路由入口
需要在页面中定义一个 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 标签定义页面
点击跳转事件
参考:
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
