自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ArkUI調(diào)用Java PA,使用Java FA的Webview組件

開(kāi)發(fā) 后端
聲明式UI開(kāi)發(fā)框架(ArkUI),沒(méi)有WebView組件,如何從ArkUI從發(fā)起調(diào)用Java PA從Java的PA跳轉(zhuǎn)到Java的FA,使用Java FA的WebView組件?

[[441027]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1.業(yè)務(wù)實(shí)踐背景:

聲明式UI開(kāi)發(fā)框架(ArkUI),沒(méi)有WebView組件,如何從ArkUI從發(fā)起調(diào)用Java PA從Java的PA跳轉(zhuǎn)到Java的FA,使用Java FA的WebView組件?

2.業(yè)務(wù)實(shí)現(xiàn)邏輯

2.1 建立ets的工程,使用api 7.0 構(gòu)建;

2.2 ArkUI的初始界面添加onClick點(diǎn)擊事件,從ArkUI發(fā)起對(duì)Java PA(Service Ability)的調(diào)用;

UI視圖如下:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

構(gòu)建ets視圖代碼如下:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

2.3 ArkUI調(diào)用Java PA(Service Ability)機(jī)制:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

通過(guò)FeatureAbility.callAbility({}),呼叫后臺(tái)定義的Java PA(Service Ability),目前有兩種機(jī)制可以實(shí)現(xiàn)。

方舟開(kāi)發(fā)框架-基于JS擴(kuò)展的類(lèi)Web開(kāi)發(fā)范式框架提供了一種FA(JS API)調(diào)用PA(Java API)的機(jī)制,包含遠(yuǎn)端調(diào)用Ability和本地調(diào)用Internal Ability兩種方式。

FA提供了以下三個(gè)JS接口:

FeatureAbility.callAbility(OBJECT):調(diào)用PA能力

FeatureAbility.subscribeAbilityEvent(OBJECT, Function):訂閱PA能力

FeatureAbility.unsubscribeAbilityEvent(OBJECT):取消訂閱PA能力

JS端與Java端通過(guò)接口擴(kuò)展機(jī)制進(jìn)行通信,通過(guò)bundleName和abilityName來(lái)進(jìn)行關(guān)聯(lián)。在FeatureAbility Plugin收到JS調(diào)用請(qǐng)求后,系統(tǒng)根據(jù)開(kāi)發(fā)者在JS指定的abilityType,Ability或Internal Ability,來(lái)選擇對(duì)應(yīng)的方式進(jìn)行處理。開(kāi)發(fā)者在onRemoteRequest()中實(shí)現(xiàn)PA提供的業(yè)務(wù)邏輯,不同的業(yè)務(wù)通過(guò)業(yè)務(wù)碼來(lái)區(qū)分。

在PA端提供的接口為:

boolean IRemoteObject.onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option):Ability方式,與FA通過(guò)rpc方式通信,該方式的優(yōu)點(diǎn)在于PA可以被不同的FA調(diào)用。

boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option):Internal Ability方式,集成在FA中,適用于與FA業(yè)務(wù)邏輯關(guān)聯(lián)性強(qiáng),響應(yīng)時(shí)延要求高的服務(wù)。該方式僅支持本FA訪問(wèn)調(diào)用。

2.4 在src的Java目錄下新建Service Ability,截圖如下:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

2.5 在Service Ability新建內(nèi)部類(lèi)WebRemote,繼承RemoteObject,實(shí)現(xiàn)IRemoteBroker接口,具體代碼如下:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

第一步: 在onRemoteRequest方法中接受ArkUI傳過(guò)來(lái)的url,通過(guò)ZSONObject解析獲取;

第二步: 在獲取到url后,通過(guò)Intent對(duì)象設(shè)置,通過(guò)startAbility(intent)啟動(dòng)到Java FA。

2.6 Java FA的布局和具體的Slice中獲取加載WebView組件:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)
#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

2.7 在config.json文件中配置網(wǎng)絡(luò)訪問(wèn)權(quán)限:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

最后的視圖效果是:

#星光計(jì)劃2.0# ArkUI 調(diào)用Java  PA,使用Java FA的Webview組件-鴻蒙HarmonyOS技術(shù)社區(qū)

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1589

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-09-10 15:13:41

鴻蒙HarmonyOS應(yīng)用

2021-10-27 10:05:55

鴻蒙HarmonyOS應(yīng)用

2022-03-07 14:58:10

ArkUIJS FAJava

2022-06-02 14:27:05

UI框架JS

2022-02-24 16:00:59

Ability鴻蒙JS

2021-07-16 09:54:49

鴻蒙HarmonyOS應(yīng)用

2012-12-26 12:41:14

Android開(kāi)發(fā)WebView

2022-02-17 21:28:08

AbilityJSFA鴻蒙

2022-07-11 16:26:37

eTS計(jì)算鴻蒙

2022-02-17 21:19:35

JSFA操作系統(tǒng)鴻蒙

2010-08-04 10:17:17

Android開(kāi)發(fā)WebView組件

2022-05-20 10:56:54

AbilityeTS FA調(diào)用

2021-11-15 15:11:14

鴻蒙HarmonyOS應(yīng)用

2014-09-22 15:14:04

2023-12-29 08:37:59

2009-08-11 11:07:49

Java調(diào)用C# we

2021-10-08 08:38:00

Pipelineshell命令Jenkins

2022-09-08 15:18:51

Ability鴻蒙

2022-02-17 21:05:26

AbilityJS FAJava PA

2022-06-30 13:56:05

Rating鴻蒙
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)