赞
踩
在Harmony OS应用开发中支持JS 和 JAVA 进行开发的方式,由于每个人的开发习惯不同,掌握的开发语言不同,所以在应用开发中就会有JS与 JAVA 的混合使用的场景,需要 JS 与 JAVA 和之间的交互。Harmony OS中通过 FA 调用 PA 的机制来实现 JS 与 JAVA 和之间的交互。
在了解 FA 调用 PA 的机制之前,首先要了解什么是FA,什么是PA。HarmonyOS应用是由Ability构成的,Ability可以分为 FA(Feature Ability)和 PA(Particle Ability)两种类型。
FA 调 PA 机制,在 HarmonyOS 引擎内提供了一种通道来传递方法调用、数据返回、事件上报,可根据需要自行实现 FA 和 PA 两端的对应接口完成对应的功能逻辑。FA 一般都是选择 JS 开发的,而 PA 只支持JAVA开发,JS FA 与 JAVA PA 之间是基于RPC协议实现的进程间通信,根据系统提供的API,JS FA 将数据往平台层透传,平台层将数据转换成 C++ 类型的数据,再通过 C++ 与 JAVA 的JNI接口类,将 C++ 的数据传递到 JAVA 侧,并接收 JAVA 侧返回的数据。借助 FA 调 PA 机制,可以根据需要进行对应功能的接口拓展,实现 JS 与 JAVA 的交互。
PA端的两种实现方式
PA端包含远端调用Ability和本地调用Internal Ability两种方式。
Ability调用方式:拥有独立的Ability生命周期,FA 使用远端进程通信拉起并请求 PA 服务,适用于基本服务 PA 有多个 FA 调用或者 PA 在后台独立运行的场景。
Internal Ability调用方式:PA 与 FA 共进程, PA 和 FA 采用内部函数调用的方式进行通信,适用于对服务响应时延要求较高的场景。该方式下 PA 不支持其他 FA 访问调用。
这两种调用方式在代码中可通过abilityType来标识,更多差异如下表:
FA提供的三个JS接口:
PA端提供以下两类接口:
下面通过一个Demo项目来实现JS与Java之间的交互。Demo分为两个页面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。