更多内容请访问:Harmonyos技术社区https://harmonyos.51cto.com与华为官方共同建立1.介绍如何使用JSFA简单高效调用PA的能力?如果你不明白FA和PA的概念,可以点击链接详细了解。今天用js2java-codegen这个工具重新体验了一下,嗯~,体验不错,分享一下。官方文档指导:JSFA(FeatureAbility)调用PA(ParticleAbility)是方舟开发框架基于JS扩展类Web开发范式提供的跨语言能力调用机制。用于建立JS能力与Java能力之间传递方法调用、处理数据返回、订阅事件上报的通道。开发者可以使用FA调用PA机制进行应用开发,但是直接使用这种机制需要开发者手动编写大量的模板代码,而且模板代码可能会与业务代码耦合,使得代码的可维护性和可读性较差。为了提高开发效率,开发者可以使用DevEcoStudio环境中的js2java-codegen工具自动生成JSFA调用PA代码(目前只支持InternalAbility调用方式),快速完成FA调用PA应用的开发。下面通过一个简单计算器的例子(接口JSFA实现)来看一下JSFA调用PA的开发步骤。2、效果展示3、搭建环境,安装DevEcoStudio。具体请参考DevEcoStudio下载。搭建DevEcoStudio开发环境。DevEcoStudio开发环境依赖于网络环境。需要联网才能保证工具的正常使用。开发环境可根据以下两种情况进行配置:如果可以直接上网,只需要下载HarmonyOSSDK即可运行。如果网络不能直接访问Internet,则需要通过代理服务器访问。请参考配置开发环境。下载源码后,使用DevEcoStudio打开工程,运行模拟器。要在真机上运行,??需要将config.json中的buddleName修改为自己的。如果没有,请在AGC上进行配置,参见DebuggingwiththeSimulator。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类)。只支持文件中的公共顶级类,不支持接口类和注解类。包含一个参数:registerTo,其值为要注册的Ability类的全名。@ExportIgnore注解方法注解用于InternalAbility类中的一些方法,表示该方法不暴露给JS端调用。仅对公共方法有效。@ContextInject注释用于AbilityContext上的注释。该类由HarmonyOS的JavaAPI提供,开发者可以通过该类获取API中提供的信息。我们的一些功能可能会使用上下文,这个注解可以帮助我们自动注入上下文。2、实现提供的服务接口,参见上图中的calculateResult函数。5.3调用工具编译生成代码编译方式:Build–BuildHaps(s)/App(s)----BuildHaps(s)生成两份代码,一份Java代码(CalculateServiceStub.java)和一份JS代码目录上面配置的(CalculateService.js)*//这个文件是自动生成的。不要修改它!5.4编写JS代码完成调用1、在index.js中引用生成的FA接口类—2。创建FA接口实例----3.调用相应的方法5.5编写页面布局代码(index.hml)六、思考与总结1、通过js2java-codegen工具,从jsFA中调用PA的思路变得清晰,注解非常简单,并且代码生成也很方便。2.完成业务功能,不用关注生成的代码。7.完整代码附件可直接下载https://harmonyos.51cto.com/resource/1495更多信息请访问:Harmonyos.51cto.com,与华为官方共建的鸿蒙技术社区
