
HarmonyOS API:JS LocalParticle Ability机制
版本:v3.1 Beta
概述
更新时间: 2023-02-17 09:19
方舟开发框架-基于JS扩展的类Web开发范式框架提供了JS FA(Feature Ability)调用本地Java PA(Particle Ability)的机制。该机制在HarmonyOS引擎内提供了一种通道来传递方法调用、数据返回、事件上报,开发者可根据需要自行实现FA和PA两端的对应接口完成对应的功能逻辑。
通过OS底层的跨语言消息通信机制,将JS FA的JS请求传递到Java端相应的接口上,实现JS与Java业务逻辑的通信、状态共享,使JS调用Java端方法能获得与Java调用Java方法相同的体验。
说明
从API Version 6 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Java侧接口说明
更新时间: 2023-02-17 09:19
支持设备
API | 手机 | 平板 | 智慧屏 | 智能穿戴 |
ohos.ace.ability.LocalParticleAbility | 支持 | 支持 | 支持 | 支持 |
LocalParticleAbility类
应用包内抽象接口,实现该接口的类,其public方法通过框架直接向JS开放访问。
说明
- 同一个Ability中,特定实现类,只能注册一个实例,后注册的生效。
- 返回自定义数据结构对象时,需要实现对应属性的getter和setter方法。
- 接口参数必须是指定类型,不支持Object超类。
导入模块
register
void register(AceAbility aceAbility)
注册接口实例到框架层。在js侧使用该LocalParticleAbility之前需要调用register接口进行实例注册。
- 参数描述
参数名 | 类型 | 必填 | 说明 |
aceAbility | AceAbility | 是 | 该接口实例与Ability的声明周期绑定。 |
deregister
void deregister(AceAbility aceAbility)
从框架层反注册当前接口以回收资源。
- 参数描述
参数名 | 类型 | 必填 | 说明 |
aceAbility | AceAbility | 是 | 注销绑定到该Ability上的接口实例 |
Callback接口
异步回调函数接口,基于LocalParticleAbility实现的PA端,可使用该接口,异步调用JS端回调函数。
导入模块
reply
void reply(Object data)
PA端使用该接口向JS侧回调函数发送消息。
- 参数描述
参数名 | 类型 | 必填 | 说明 |
data | Object | 是 | 数据会直接映射到JS回调函数的参数列表。 |
说明
- data返回的是Collection/Array时,在JS侧会自动展开。如果要直接传递一个数组,JS侧函数的参数,需要声明为可变参数,如function(...data)。
JS侧接口说明
更新时间: 2023-02-17 09:19
支持设备
表1 API的设备支持情况
API | 手机 | 平板 | 智慧屏 | 智能穿戴 |
createLocalParticleAbility | 支持 | 支持 | 支持 | 支持 |
导入模块
无需导入。
createLocalParticleAbility
createLocalParticleAbility(name: string): Promise<Object>
获取Java接口实例,该Java示例对象需要调用register进行注册,否则无法获取该对象,获取到该实例后,可以调用Java侧的同名函数。
- 参数
参数名 | 类型 | 必填 | 说明 |
name | string | 是 | Java接口名称,含包路径,如com.example.test.TimeInterfaceImpl. |
- 返回值返回一个Promise对象,resolve返回结果是与PA端返回值一致的Object类型,reject回调返回结构如下,错误码类型详见表2。
参数名 | 类型 | 说明 |
code | number | 错误码 |
data | string | 错误信息 |
示例
更新时间: 2023-02-17 09:19
- LocalParticleAbility接口实现类
- OperateData自定义返回对象
- MainAbility接口注册
- JS侧接口调用
