【HarmonyOS】如何实现应用内引用HSP模块中ArkUI组件

2023-09-14 10:28:16

【关键字】

HSP开发、引入HSP模块中ArkUI组件

【写在前面】

在使用ArkTS开发HarmonyOS应用时,通常会定义一些公共组件或公共接口功能,此时可以将这些功能封装到HSP模块中,然后通过在HSP模块中导出组件或接口方式在其他模块中引用,可以实现应用内部代码与资源的共享。这里主要讲如何在entry模块中引用HSP模块中定义ArkUI组件的主要步骤,此处以API9 Stage模型HarmonyOS应用开发为例,hvigor版本为2.4.2。

【开发主要步骤】

步骤1:在HarmonyOS工程项目中,创建HSP模块,HSP模块可以在DevEco Studio中由指定模板创建,此处新增library模块,参考文档如下:

开发动态共享包

cke_14089.png

步骤2:在library模块中定义ArkUI组件,在“library/src/main/ets”目录下新增components文件夹,右键>New>ArkTS File新增名称为“MyTitleBar”的ets组件,如下图所示:

cke_2033.png

步骤3:在“library/src/main/ets/Index.ets”中导出ArkUI组件,此文件中可支持导出ts类和方法、ArkUI组件、native方法等,如下图所示:

cke_3250.png

注意:请检查“library/oh-package.json5”中是否添加main配置信息,如下所示:

cke_4485.png

步骤4:在其他模块就可以导入library模块并使用导出的组件与方法了,此处以entry模块为例,在“entry/oh-package.json5”添加依赖并点击“Sync Now”进行同步,同步后就可以在oh_modules中看到了。

cke_5988.png

步骤5:在需要使用的地方直接import使用即可。请注意此处不建议通过相对路径方式引用,否则当ArkUI组件中使用资源文件时,使用相对路径引用编译时可能会报错资源找不到。这样就实现引用HSP模块ArkUI组件功能了,其他类型导出和引用实现方式也大致相同,可具体参考相关文档。

cke_8261.png

【注意事项】

1、import HSP中组件或接口功能时,不建议使用相对路径,如下图所示,这样引入可能会导致编译失败。

cke_10130.png

2、添加dependencies依赖时,HSP不支持配置在工程级oh-package.json5被其他模块引用,需要配置在各自模块的oh-package.json5内,否则可能会编译运行报错。

【参考文档】

开发和引用动态共享包:开发及引用动态共享包参考

应用内HSP开发指导:应用内HSP开发指导参考

更多推荐

从 AI 代码生成模型到 AI 编程助手应用实战

▼最近直播超级多,预约保你有收获近期直播:《从AI编程助手到AIAgent应用实战》随着科技的发展,软件设计方式也在不断地演进,从最初的面向机器,到面向过程,再到面向对象,面向领域,最后到现在快要成为可能的面向自然语言。在软件设计开发领域,我们一直在探索更高效的开发方式—1—AI编程的发展史AI编程的前身,自动代码生成

OJ练习第178题——收集树中金币

收集树中金币力扣链接:2603.收集树中金币题目描述给你一个n个节点的无向无根树,节点编号从0到n-1。给你整数n和一个长度为n-1的二维整数数组edges,其中edges[i]=[ai,bi]表示树中节点ai和bi之间有一条边。再给你一个长度为n的数组coins,其中coins[i]可能为0也可能为1,1表示节点i处

Linux的Redis集群搭建-主从集群哨兵模式

上次教大家在linux中安装单机版本的redis:Linux安装Redis(图文解说详细版)这次我们讲一下Linux安装redis的集群版本文章目录🌴准备redis环境🌴第一步,下载redis🌴第二步,传输到三台服务器中🌴第三步,解压文件🌴第四步,安装gcc环境🌴第五步,编译🌴第六步,安装🌴主从复制集群

代码随想录算法训练营Day48 (day47休息) | 动态规划(9/17) LeetCode 198.打家劫舍 213.打家劫舍II 337.打家劫舍III

来到了新的一块内容:打家劫舍问题。第一题198.HouseRobberYouareaprofessionalrobberplanningtorobhousesalongastreet.Eachhousehasacertainamountofmoneystashed,theonlyconstraintstoppingyo

S5的未来:即将到来的协议改进和可能性

大家好!在网络通信领域,S5代理协议一直扮演着重要的角色。它的灵活性和功能性使其成为许多应用程序和系统中的首选协议。今天,我将和大家分享关于S5的未来发展,包括即将到来的协议改进和可能性,让我们一起来看看吧!1.协议改进的动力尽管S5在提供代理服务方面表现出色,但仍存在一些限制和改进空间。随着网络技术的不断进步和应用场

TensorFlow框架 -- 入门详解

文章目录引言TensorFlow简介背景特点1.安装和配置1.1安装步骤1.1.1CPU版本1.1.2GPU版本安装:1.2验证安装:2.TensorFlow基础2.1数据类型与结构2.1.1张量(Tensors)2.1.2变量(Variables)2.1.3操作(Operations)2.2计算图(Computati

华为OD机试 - 计算面积 - 逻辑分析(Java 2023 B卷 100分)

目录专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题

Ansys Zemax | 如何建立二向分色分光镜

分光镜(Beamsplitter)可被运用在许多不同的场合。一般而言,入射光抵达二向分色分光镜(dichroicbeamsplitter)时,会根据波长的差异产生穿透或反射的现象。这篇文章将说明如何在OpticStudio的非序列模式(non-sequentialmode)中建立二向分色分光镜,以及如何根据需求自订镀膜

uniapp项目实践总结(十六)自定义下拉刷新组件

导语:在日常的开发过程中,我们经常遇到下拉刷新的场景,很方便的刷新游览的内容,在此我也实现了一个下拉刷新的自定义组件。目录准备工作原理分析组件实现实战演练内置刷新案例展示准备工作在components新建一个q-pull文件夹,并新建一个q-pull.vue的组件;按照前面文章所说的页面结构,编写好预定的自定义下拉刷新

[Qt]控件

文章摘于爱编程的大丙文章目录1.按钮类型控件1.1按钮基类QAbstractButton1.1.1标题和图标1.1.2按钮的Check属性1.1.3信号1.1.4槽函数1.2QPushButton1.2.1常用API1.2.2按钮的使用1.3QToolButton1.3.1常用API1.3.2按钮的使用1.4QRadi

PT@全概率公式和贝叶斯公式@后验概率和信念度量

文章目录abstract完备事件组(划分)基本性质全概率公式例贝叶斯公式例对立事件下的常用形式先验概率和后验概率例概率作为衡量人们对客观事件的信念度量补充条件概率的链式法则MorethantwoeventsExample例Morethantworandomvariables(多维随机变量下的链式乘法法则)Example

热文推荐