您现在的位置是:亿华云 > IT科技
HarmonyOS Codelabs之Js2JavaCodegen JSFA调用PA工具
亿华云2025-10-09 11:07:48【IT科技】2人已围观
简介想了解更多内容,请访问:和华为官方合作共建的鸿蒙技术社区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
很赞哦!(5)
相关文章
- 4.域名的整体品牌营销力
- 4、参加域名拍卖会
- 为啥修改dns服务器?dns服务器与域名有何联系?
- 2. 不要花大价钱买域名,新手鉴别能力不足,容易投资失误。
- 个人域名转为公司需要什么条件?个人域名转为公司该怎么做?
- a、变更前的公司证件扫描件(代码证或者营业执照)及联系人身份证复印件、变更后的公司证件扫描件(代码证或者营业执照)及新的联系人身份证复印件;身份证复印件需本人签名,公司证件复印件需加盖公章。
- 在更换域名后,并不是就万事大吉了,我们需要将旧域名做301重定向到新域名上,转移旧域名的权重到新域名上。
- 要如何了解反向解析和域名解析?新手该怎么去操作?
- 域名资源有限,好域名更是有限,但机会随时都有,这取决于我们能否抓住机会。一般观点认为,国内域名注册太深,建议优先考虑外国注册人。外国注册人相对诚实,但价格差别很大,从几美元到几十美元不等。域名投资者应抓住机遇,尽早注册国外域名。
- ④注册门槛低