HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具 原创 精华

Buty9147
发布于 2021-11-12 17:53
浏览
4收藏

本文正在参与优质创作者激励
@toc

HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具

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.效果展示

HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区

3.搭建环境

安装DevEco Studio,详情请参考DevEco Studio下载
设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:

如果可以直接访问Internet,只需进行下载HarmonyOS SDK操作。
如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境
下载源码后,使用DevEco Studio 打开项目,模拟器运行即可。
真机运行需要将config.json中的bundleName修改为自己的,如果没有请到AGC上进行配置,参见 使用模拟器进行调试

4.项目结构

HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区

5.步骤讲解

5.1 配置js2java-codegen工具

工具会根据开发者提供的Java源码生成JS与Java两种语言的模板代码,其中Java模板代码用户无需关心,而JS模板代码需要用户手动调用,因此用户需要自主设置JS模板代码的生成路径。该参数位于ohos -> defaultConfig中,只需添加如下设置即可。
1.配置js代码存放路径 ----2.配置该工具开关
HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区

5.2 创建PA服务类,实现提供的服务接口

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

2.实现提供的服务接口
见上图calculateResult函数。

5.3 调用工具编译生成代码

编译方法:Build–Build Haps(s)/App(s)----Build Haps(s)
生成的代码有两份,一份Java代码(CalculateServiceStub.java)
HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区
一份JS代码在上面配置的目录(CalculateService.js)
HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区
==*// This file is automatically generated. Do not modify it!==

5.4 编写JS 代码完成调用

1.在index.js 中引用生成的FA接口类 —2.创建FA接口实例----3.调用对应方法
HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区

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

HarmonyOS Codelabs 之 Js2javaCodegen JSFA调用PA工具-鸿蒙开发者社区

6.思考总结

1.通过js2java-codegen工具,让js FA调用PA思路变的清晰,注解很简单,生成代码也很便捷。
2.完成业务功能,不用去关注生成的代码。

7.完整代码

附件可以直接下载

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
Js2javaCodegenDemo.zip 2.82M 40次下载
已于2021-11-29 15:26:58修改
5
收藏 4
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

js2java-codegen确实是非常好用的工具,感谢分享。

回复
2021-11-15 09:53:39
回复
    相关推荐