当前位置: 首页 > 科技观察

ArkUI调用JavaPA,使用JavaFA的Webview组件

时间:2023-03-12 03:04:45 科技观察

更多内容请访问:https://harmonyos.51cto.com,与华为官方共建的鸿蒙技术社区1.业务实践背景:声明式UI开发框架(ArkUI),没有WebView组件,如何从ArkUI调用JavaPA,从JavaPA跳转到JavaFA,使用JavaFAWebView组件?2.业务实现逻辑2.1创建一个ets项目,使用api7.0构建;2.2在ArkUI初始界面添加onClick事件,从ArkUI发起对JavaPA(ServiceAbility)的调用;UI视图如下:构建ets视图代码如下:2.3ArkUI调用JavaPA(ServiceAbility)机制:通过FeatureAbility.callAbility({}),调用后台定义的JavaPA(ServiceAbility),并有目前有两种机制可以实施。方舟开发框架——一个基于JS扩展的类Web开发范式框架,提供了FA(JSAPI)调用PA(JavaAPI)的机制,包括远程调用能力和本地调用内部能力。FA提供了以下三个JS接口:FeatureAbility.callAbility(OBJECT):调用PA能力FeatureAbility.subscribeAbilityEvent(OBJECT,Function):订阅PA能力FeatureAbility.unsubscribeAbilityEvent(OBJECT):取消订阅PA能力JS端和Java端通过接口进行扩展机制通过bundleName和abilityName进行通信。FeatureAbilityPlugin收到JS调用请求后,系统根据开发者在JS中指定的abilityType、Ability或InternalAbility,选择相应的方法进行处理。开发者在onRemoteRequest()中实现PA提供的业务逻辑,不同的业务通过业务代码来区分。PA端提供的接口为:booleanIRemoteObject.onRemoteRequest(intcode,MessageParceldata,MessageParcelreply,MessageOptionoption):Ability模式,通过rpc与FA通信,这种方式的好处是PA可以被不同的FA调用.booleanonRemoteRequest(intcode,MessageParceldata,MessageParcelreply,MessageOptionoption):InternalAbility模式,集成在FA中,适用于与FA业务逻辑关联性强,响应时延要求高的业务。该方法只支持本次FA访问调用。2.4在src的java目录下新建ServiceAbility。截图如下:2.5在ServiceAbility中创建一个内部类WebRemote,继承RemoteObject,实现IRemoteBroker接口。ZSON对象分析与获取;第二步:获取url后,通过Intent对象设置,通过startAbility(intent)启动JavaFA。2.6JavaFA的布局及具体Slice中WebView组件的加载:2.7在config.json文件中配置网络访问权限:最终查看效果为:文章相关附件可点击下方链接下载原文https://harmonyos。51cto.com/resource/1589更多信息请访问:与华为官方共建鸿蒙科技社区https://harmonyos.51cto.com