鸿蒙开发 模块化

此文章内容兼容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导航 , 模块内和跨模块路由跳转,动态路由 - 简书

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容