HarmonyOS JS FA 调用 JAVA PA 机制 原创 精华
实现效果
一、项目介绍
本项目使用模拟文件下载进度变化的功能来给你展示JS FA订阅JAVA PA的能力,订阅之后JS可以一直实时获取到JAVA返回的进度数据来更新JS界面的进度条。另外,文件模拟下载完成跳转到一个求积的页面,在这个页面输入两个数,点击求积按钮会给你展示JS FA调用JAVA PA的能力,此处并不像订阅一样可以一直获取到java返回的数据,采用的模式是调用一次返回一次数据。
通过本项目,是想让你了解如下知识点:
1) FeatureAbility.callAbility(OBJECT):调用PA能力。
2) FeatureAbility.subscribeAbilityEvent(OBJECT, Function):订阅PA能力。
3) FeatureAbility.unsubscribeAbilityEvent(OBJECT):取消订阅PA能力。
二、代码结构解读
1、java/ServiceAbility : java与js的通信代码;
2、java-RequestParam :请求参数的实体类;
3、js-pages-index.hml : js模拟文件下载页;
4、js-pages-index.js : js订阅java pa代码;
5、js-calculate-calculate.hml : js求积页面;
6、js-calculate-calculate.js : 调用java pa代码;
7、config.json : js、java的配置文件,里面包括页面配置、service配置、窗体配置等等。
三、新建js project
-
右击—new—new project 。
-
选择模板—next。
-
输入项目名称、选择项目类型(单选)、api版本,设备类型,点击finish即可。
四、订阅PA解读
- 点击下载按钮,向java端发送订阅请求。
- java端在ServiceAbility中对订阅请求进行处理,在内部类MyRemote的onRemoteRequest方法中根据code参数来判断请求类型进行相应处理。
- java端开启线程,按照5*3 每15毫秒的频率返回数据给js端。这里java发送给js的数据,js端会通过订阅java pa的回调函数中而实时获取到。
- js页面点击取消按钮,取消订阅模式, java端停止返回数据。
js端代码如下:
java端service代码如下:
五、调用PA解读
- 获取input输入的值,作为js端传递过去的值。
- 点击求积按钮 发送调用模式的请求。
- java端在ServiceAbility中对订阅请求进行处理,在内部类MyRemote的onRemoteRequest方法中根据code参数来判断请求类型进行相应处理。这里java发送给js的数据,js端会通过调用java pa的结果而获取到。
- 返回到前一个页面,这里在页面js中import router from ‘@system.router’,然后利用router对象的相关方法返回。
六、代码参考
https://gitee.com/chinasoft6_ohos/java-js-communication
作者 :晋国晨
更多原创内容请关注:开鸿 HarmonyOS 学院
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,共建鸿蒙生态,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
整个流程很完整,感谢分享。
整个流程很完整,感谢分享。
解释的很到位
感谢分享