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

HarmonyOS Codelabs之Js2JavaCodegen JSFA調(diào)用PA工具

開發(fā) 前端 OpenHarmony
JS FA(Feature Ability)調(diào)用PA (Particle Ability)是使用基于JS擴展的類Web開發(fā)范式的方舟開發(fā)框架所提供的一種跨語言能力調(diào)用的機制,用于建立JS能力與Java能力之間傳遞方法調(diào)用、處理數(shù)據(jù)返回以及訂閱事件上報的通道。

[[435106]]

想了解更多內(nèi)容,請訪問:

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

https://harmonyos.51cto.com

1.介紹

如何用JS FA簡單高效的調(diào)用PA能力?如果還不了解FA和PA概念的小伙伴可以點進鏈接去詳細了解一下。

今天使用js2java-codegen工具重新體驗了一把,嗯~,體驗不錯,來做個分享。

官方文檔指導(dǎo)說明:

JS FA(Feature Ability)調(diào)用PA (Particle Ability)是使用基于JS擴展的類Web開發(fā)范式的方舟開發(fā)框架所提供的一種跨語言能力調(diào)用的機制,用于建立JS能力與Java能力之間傳遞方法調(diào)用、處理數(shù)據(jù)返回以及訂閱事件上報的通道。開發(fā)者可以使用FA調(diào)用PA機制進行應(yīng)用開發(fā),但直接使用該機制需要開發(fā)者手動撰寫大量模板代碼,且模板代碼可能與業(yè)務(wù)代碼相互耦合,使得代碼可維護性和可讀性較差。

想要提升開發(fā)效率,開發(fā)者可以在DevEco Studio環(huán)境中借助js2java-codegen工具自動生成JS FA調(diào)用PA代碼(目前僅支持InternalAbility調(diào)用方式),快速完成FA調(diào)用PA應(yīng)用的開發(fā)。

接下來,通過一個簡易計算器的實例(界面JS FA實現(xiàn))看一下JS FA調(diào)用PA的開發(fā)步驟。

2.效果展示

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

3.搭建環(huán)境

安裝DevEco Studio,詳情請參考DevEco Studio下載。

設(shè)置DevEco Studio開發(fā)環(huán)境,DevEco Studio開發(fā)環(huán)境需要依賴于網(wǎng)絡(luò)環(huán)境,需要連接上網(wǎng)絡(luò)才能確保工具的正常使用,可以根據(jù)如下兩種情況來配置開發(fā)環(huán)境:

如果可以直接訪問Internet,只需進行下載HarmonyOS SDK操作。

如果網(wǎng)絡(luò)不能直接訪問Internet,需要通過代理服務(wù)器才可以訪問,請參考配置開發(fā)環(huán)境。

下載源碼后,使用DevEco Studio 打開項目,模擬器運行即可。

真機運行需要將config.json中的buddleName修改為自己的,如果沒有請到AGC上進行配置,參見 使用模擬器進行調(diào)試 。

4.項目結(jié)構(gòu)

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

5.步驟講解

5.1 配置js2java-codegen工具

工具會根據(jù)開發(fā)者提供的Java源碼生成JS與Java兩種語言的模板代碼,其中Java模板代碼用戶無需關(guān)心,而JS模板代碼需要用戶手動調(diào)用,因此用戶需要自主設(shè)置JS模板代碼的生成路徑。該參數(shù)位于ohos -> defaultConfig中,只需添加如下設(shè)置即可。

1.配置js代碼存放路徑 ----2.配置該工具開關(guān)

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

5.2 創(chuàng)建PA服務(wù)類,實現(xiàn)提供的服務(wù)接口

1.創(chuàng)建計算服務(wù)類(CalculateService.java) 并添加注解

注解有主要有3個,

@InternalAbility注解

類注解,用于被使用作InternalAbility的、包含實際業(yè)務(wù)代碼的類(簡稱InternalAbility類)。只支持文件中public的頂層類,不支持接口類和注解類。包含一個參數(shù):registerTo,值為需要注冊到的Ability類全名。

@ExportIgnore注解

方法注解,用于InternalAbility類中的某些方法,表示該方法不暴露給JS側(cè)來調(diào)用。僅對public方法有效。

@ContextInject注解

用于AbilityContext上的注解。該類由HarmonyOS的Java API提供,開發(fā)者可通過它獲取API中提供的信息。我們一些功能可能會用到上下文,這個注解幫我們把上下文自動注入進來了。

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

2.實現(xiàn)提供的服務(wù)接口

見上圖calculateResult函數(shù)。

5.3 調(diào)用工具編譯生成代碼

編譯方法:Build–Build Haps(s)/App(s)----Build Haps(s)

生成的代碼有兩份,一份Java代碼(CalculateServiceStub.java)

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

一份JS代碼在上面配置的目錄(CalculateService.js)

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

*// This file is automatically generated. Do not modify it!

5.4 編寫JS 代碼完成調(diào)用

1.在index.js 中引用生成的FA接口類 —2.創(chuàng)建FA接口實例----3.調(diào)用對應(yīng)方法

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

5.5 編寫頁面布局代碼(index.hml)

HarmonyOS Codelabs 之 Js2javaCodegen JSFA調(diào)用PA工具-鴻蒙HarmonyOS技術(shù)社區(qū)

6.思考總結(jié)

1.通過js2java-codegen工具,讓js FA調(diào)用PA思路變的清晰,注解很簡單,生成代碼也很便捷。

2.完成業(yè)務(wù)功能,不用去關(guān)注生成的代碼。

7.完整代碼

附件可以直接下載

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

想了解更多內(nèi)容,請訪問:

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

https://harmonyos.51cto.com

 

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

2022-02-24 16:00:59

Ability鴻蒙JS

2022-02-17 21:28:08

AbilityJSFA鴻蒙

2022-02-17 21:19:35

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

2021-10-27 10:05:55

鴻蒙HarmonyOS應(yīng)用

2021-09-10 15:13:41

鴻蒙HarmonyOS應(yīng)用

2022-02-17 21:05:26

AbilityJS FAJava PA

2022-03-07 14:58:10

ArkUIJS FAJava

2021-12-20 10:07:39

鴻蒙HarmonyOS應(yīng)用

2022-06-02 14:27:05

UI框架JS

2021-07-16 09:54:49

鴻蒙HarmonyOS應(yīng)用

2021-03-02 09:29:29

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-05-07 09:35:30

鴻蒙HarmonyOS應(yīng)用

2023-04-04 10:09:09

2022-01-27 10:26:07

Python

2021-09-14 09:34:05

鴻蒙HarmonyOS應(yīng)用

2021-07-08 09:42:04

鴻蒙HarmonyOS應(yīng)用

2021-09-18 09:57:20

鴻蒙HarmonyOS應(yīng)用

2021-07-23 16:22:58

鴻蒙HarmonyOS應(yīng)用

2023-05-29 16:51:06

點贊
收藏

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