此文章内容兼容API12,使用harmony next应用开发
1,首先定义项目结构
(不懂 hap hsp har 类型区别的,可查看这篇文章: 鸿蒙开发 ,hap hsp har 区别及选择-CSDN博客
)
项目结构.jpg
2,创建不同模块后,在对应父模块的 oh-package.json5 文件中,引用子模块:
"dependencies": {
"xx_support": "file:../xx_support"
}
3,模块间传值
(1)在support模块,定义交互接口
export interface BussinessApi {
/**
* 是否测试环境
*/
isTest():boolean
/**
* 跳转到首页
*/
gotoMainPage():void
}
(2) 在support 模块,实现接口,并预留“插桩”
export class BussinessUtil{
private static instance: BussinessUtil| null = null;
bussinessApi?: BussinessApi ;
static getInstance(): BussinessUtil{
if (!DzhsjHqBussinessUtil.instance) {
BussinessUtil.instance = new BussinessUtil();
}
return BussinessUtil.instance;
}
private constructor() {
}
/**
* 是否测试环境
*/
isTestEnv():boolean{
if(this.bussinessApi) {
return this.bussinessApi?.isTestEnv()
}else { return false }
}
/**
* 跳转到首页
*/
gotoMainPage(){
this.bussinessApi?.gotoMainPage()
}
(3) entry 模块实现交互接口
class BussinessApiImpl implements BussinessApi{
isTestEnv(): boolean {
return XXConst.IS_TEST_ENVIRONMENT
}
gotoMainPage(){
//路由操作
}
}
(4)在首启页/启动页,实现“插桩”
aboutToAppear(){
BussinessUtil.getInstance().bussinessApi = new BussinessApiImpl()
}
4,模块间跳转
(1)每个模块维护自己的 NavPathStack
(2)所有的跳转操作,统一放在 support 模块下
(3)跳转时,获取对应模块的 NavPathStack 【步骤三】,执行跳转操作 pushPathByName/popToName
可查看此文章 鸿蒙Navigation导航 , 模块内和跨模块路由跳转,动态路由 - 简书