HarmonyOS应用开发:JS FA调用Java PA(概览)
方舟开发框架-基于JS扩展的类Web开发范式框架提供了一种FA(JS API)调用PA(Java API)的机制,包含远端调用Ability和本地调用Internal Ability两种方式。
FA端接口:
FeatureAbility.callAbility(OBJECT):调用PA能力
FeatureAbility.subscribeAbilityEvent(OBJECT, Function):订阅PA能力
FeatureAbility.unsubscribeAbilityEvent(OBJECT):取消订阅PA能力
PA端接口:
boolean IRemoteObject.onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option):Ability方式,与FA通过rpc方式通信,该方式的优点在于PA可以被不同的FA调用。
boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option):Internal Ability方式,集成在FA中,适用于与FA业务逻辑关联性强,响应时延要求高的服务。该方式仅支持本FA访问调用。
JS端与Java端通过接口扩展机制进行通信,通过bundleName和abilityName来进行关联。在FeatureAbility Plugin收到JS调用请求后,系统根据开发者在JS指定的abilityType,Ability或Internal Ability,来选择对应的方式进行处理。开发者在onRemoteRequest()中实现PA提供的业务逻辑,不同的业务通过业务码来区分。
参数(FA的Object成员,PA的data):
返回值:
Promise |
Promise中包含PA返回的结果数据,结果格式为JSON字符串。 |