您现在的位置是:亿华云 > 应用开发
HarmonyOS Codelabs之Js2JavaCodegen JSFA调用PA工具
亿华云2025-10-04 01:06:02【应用开发】4人已围观
简介想了解更多内容,请访问:和华为官方合作共建的鸿蒙技术社区https://harmonyos.51cto.com1.介绍如何用JS FA简单高效的调用PA能力?如果还不了解FA和PA概念的小伙伴可以点进
想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.51cto.com
1.介绍
如何用JS FA简单高效的调用PA能力?如果还不了解FA和PA概念的小伙伴可以点进链接去详细了解一下。
今天使用js2java-codegen工具重新体验了一把,嗯~,体验不错,来做个分享。
官方文档指导说明:
JS FA(Feature Ability)调用PA (Particle Ability)是使用基于JS扩展的类Web开发范式的方舟开发框架所提供的一种跨语言能力调用的机制,用于建立JS能力与Java能力之间传递方法调用、处理数据返回以及订阅事件上报的通道。开发者可以使用FA调用PA机制进行应用开发,但直接使用该机制需要开发者手动撰写大量模板代码,且模板代码可能与业务代码相互耦合,使得代码可维护性和可读性较差。
想要提升开发效率,开发者可以在DevEco Studio环境中借助js2java-codegen工具自动生成JS FA调用PA代码(目前仅支持InternalAbility调用方式),快速完成FA调用PA应用的开发。
接下来,通过一个简易计算器的实例(界面JS FA实现)看一下JS FA调用PA的开发步骤。
2.效果展示

3.搭建环境
安装DevEco Studio,详情请参考DevEco Studio下载。
设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,服务器托管需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:
如果可以直接访问Internet,只需进行下载HarmonyOS SDK操作。
如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境。
下载源码后,使用DevEco Studio 打开项目,模拟器运行即可。
真机运行需要将config.json中的buddleName修改为自己的,如果没有请到AGC上进行配置,参见 使用模拟器进行调试 。
4.项目结构

5.步骤讲解
5.1 配置js2java-codegen工具
工具会根据开发者提供的Java源码生成JS与Java两种语言的模板代码,其中Java模板代码用户无需关心,而JS模板代码需要用户手动调用,因此用户需要自主设置JS模板代码的生成路径。该参数位于ohos -> defaultConfig中,只需添加如下设置即可。
1.配置js代码存放路径 ----2.配置该工具开关

5.2 创建PA服务类,实现提供的服务接口
1.创建计算服务类(CalculateService.java) 并添加注解
注解有主要有3个,
@InternalAbility注解
类注解,用于被使用作InternalAbility的、包含实际业务代码的类(简称InternalAbility类)。只支持文件中public的顶层类,不支持接口类和注解类。香港云服务器包含一个参数:registerTo,值为需要注册到的Ability类全名。
@ExportIgnore注解
方法注解,用于InternalAbility类中的某些方法,表示该方法不暴露给JS侧来调用。仅对public方法有效。
@ContextInject注解
用于AbilityContext上的注解。该类由HarmonyOS的Java API提供,开发者可通过它获取API中提供的信息。我们一些功能可能会用到上下文,这个注解帮我们把上下文自动注入进来了。

2.实现提供的服务接口
见上图calculateResult函数。
5.3 调用工具编译生成代码
编译方法:Build–Build Haps(s)/App(s)----Build Haps(s)
生成的代码有两份,一份Java代码(CalculateServiceStub.java)

一份JS代码在上面配置的目录(CalculateService.js)

*// This file is automatically generated. Do not modify it!
5.4 编写JS 代码完成调用
1.在index.js 中引用生成的FA接口类 —2.创建FA接口实例----3.调用对应方法

5.5 编写页面布局代码(index.hml)

6.思考总结
1.通过js2java-codegen工具,让js FA调用PA思路变的清晰,注解很简单,生成代码也很便捷。
2.完成业务功能,不用去关注生成的代码。
7.完整代码
附件可以直接下载
https://harmonyos.51cto.com/resource/1495
想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.51cto.com
很赞哦!(71)
相关文章
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 天下苦Vim久矣!硬核程序员教你如何花式退出Vim,一周收获2400星
- 人工智能时代,Web 前端能做什么?
- 那些奇奇怪怪的缓冲问题
- 为什么大家都选优质域名?到底存在着什么好处?
- Python与Excel 不得不说的事情
- 四个全新维度,优化你的HTTP性能到极致
- 天下苦Vim久矣!硬核程序员教你如何花式退出Vim,一周收获2400星
- 个人域名转为公司需要什么条件?个人域名转为公司该怎么做?
- 慌了,面试居然被问到怎么做高并发系统的限流?