成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用FeatureAbility模塊啟動其他Ability

系統 OpenHarmony
本節以API8為主,關于Stage模型的詳細介紹將在今后的章節中介紹。此處的FA是一種模型,其中的Ability分為PageAbility、ServiceAbility、DataAbility、FormAbility,與FA(FeatureAbility不能混淆)。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

1、前言

在HarmonyOS/OpenHarmony應用程序中一切皆Ability(能力),即是每個界面都可以是Ability,每個功能都可以是Ability,又將Ability分為FA(FeatureAbility)和PA(ParticleAbility)兩種類型。其中FA唯一支持的模板Page Ability,其用于提供與用戶交互能力,在設備主界面上有可見的桌面圖標,能夠通過圖標啟動應用程序進行交互操作;而PA又分為Service Ability和Data Ability,前者用于提供后臺運行任務的能力,后者用于應用管理自身和其他應用存儲數據的訪問能力,因此PA是無界面的,用戶無法對其直接操作,可以和FA配合使用。

在JS/eTS語言中,Ability框架又被分為FA模型和Stage模型(該模型目前僅支持OpenHarmony API9)。在DevEco Studio 3.0 Beta4中HarmonyOS使用了OpenHarmony API8,因此可以大膽猜測一下后續API版本會不會以OpenHarmony API版本為主。 本節以API8為主,關于Stage模型的詳細介紹將在今后的章節中介紹。此處的FA是一種模型,其中的Ability分為PageAbility、ServiceAbility、DataAbility、FormAbility,與FA(FeatureAbility不能混淆)。

  • PageAbility 是用戶可見并可交互的Ability實例,可開發在設備主界面上具有入口圖標的應用程序。
  • ServiceAbility 運行在后臺的、無界面的,用戶不可直接操作的,可以通過Page Ability調起。
  • DataAbility 為其他Ability提供數據訪問的支撐,也是運行在后臺的、無界面的。
  • FormAbility 是卡片Ability,是一種新型的Ability,用于呈現特定信息的入口界面。

JS/eTS語言是方舟開發框架(ArkUI)為開發者開發應用程序提供的兩種開發范式,前者是基于JS擴展的類Web開發范式,若開發者具備小程序開發經驗則可直接上手,更傾向于Web前端開發人員;而后者則是基于TS擴展的聲明式開發范式,與Flutter開發應用程序類似,更傾向于移動系統應用和系統應用開發人員。

2、準備工作

  • 開發工具:DevEco Studio 3.0 Beta4。
  • 運行設備:P50(HarmonyOS3.0) / DAYU200(OpenHarmony 3.0 Beta2)。
  • 桌面工具:Scrcpy(用于在PC桌面上共享P50界面,OpenHarmony暫無)。
  • 使用DevEco Studio創建開發語言為eTS語言,編譯版本為8,項目名稱為FaeTSSample的HarmonyOS應用程序(由于DevEco Studio 3.0 Beta4特性,HarmonyOS和OpenHarmony互通,當前HarmonyOS的應用程序可以直接運行在OpenHarmony操作系統的設備上)。

3、有界面的PageAbility

通過DevEco Studio創建Application(應用程序)會默認創建PageAbility模板代碼,在ArkUI框架中,PageAbility相關能力是通過單獨的featureAbility模塊實現的,其由于為用戶提供了可交互的界面,因此生命周期較于其他Ability復雜度較高,PageAbility生命周期回調通過app.js/app.ets中的函數實現,當前app.js僅支持onCreate和onDestroy回調,而app.ets支持全量生命周期回調,本節以eTS語言為主,主要介紹eTS語言開發中PageAbility生命周期回調,如下圖所示:

使用FeatureAbility模塊啟動其他Ability-開源基礎軟件社區

可以在app.ets中將所有的聲明周期函數重寫,并運行應用程序查看聲明周期回調信息,代碼如下所示:

export default {
onCreate() {
console.info('FaeTSSample Application onCreate')
},
onActive() {
console.info('FaeTSSample Application onActive')
},
onInactive() {
console.info('FaeTSSample Application onInactive')
},
onHide() {
console.info('FaeTSSample Application onHide')
},
onShow() {
console.info('FaeTSSample Application onShow')
},
onDestroy() {
console.info('FaeTSSample Application onDestroy')
},
}

使用FeatureAbility模塊啟動其他Ability-開源基礎軟件社區

(1)使用featureAbility模塊啟動本地PageAbility

HarmonyOS/OpenHarmony為用戶提供了路由跳轉方式,而路由跳轉方式是頁面間跳轉,可以利用featureAbility模塊進行Ability之間的跳轉,并且featureAbility僅能在PageAbility類型的Ability中調用。

使用featureAbility模塊需要先在具體的業務邏輯界面使用以下代碼引入模塊:

import featureAbility from '@ohos.ability.featureAbility';

featureAbility模塊提供了多個方法用于啟動新的Ability、獲取dataAbilityHelper、設置此PageAbility、獲取當前Ability對應的窗口、連接服務等能力。featureAbility提供的啟動新Ability能力如下表所示:

名稱

描述

startAbility

啟動新的Ability

startAbilityForResult

啟動新的Ability,并在該Ability被銷毀時返回執行結果

接下來聊聊在應用程序中如何啟動新的Ability,首先在項目entry目錄右鍵New–>Ability --> Page Ability,填寫Ability相關信息如下圖所示。

使用FeatureAbility模塊啟動其他Ability-開源基礎軟件社區

目錄結構如下圖所示:

使用FeatureAbility模塊啟動其他Ability-開源基礎軟件社區

startAbility方法有兩種調用形式,一種是callback,另一種是Promise,都需要傳遞StartAbilityParameter參數設定目標Ability。

startAbility(StartAbilityParameter, AsyncCallback<number>): void
startAbility(StartAbilityParameter): Promise<number>

其中StartAbilityParameter參數由Want(包含有關目標Ability信息)和abilityStartSetting(可以通過該屬性攜帶參數,不是必須條件)。其中國Want參數提供系統的基本通信能力,比如在打開時指定新啟動的Ability信息,或者銷毀啟動的Ability后返回的額外信息。點擊MainAbility中的按鈕啟動SecondAbility,修改代碼如下所示:

// MainAbility/page/index.ets
featureAbility.startAbility({
want: {
bundleName: "com.tetcl.fts", // 包描述,對應config.json中的app.bundleName,當然也可以是本機其他應用的包名
abilityName: "com.example.entry.SecondAbility" // 目標Ability名稱,對應config.json中的module.package.類名
}
})

使用真機設備運行應用程序,點擊按鈕,查看是否跳轉到Second Ability界面。

使用FeatureAbility模塊啟動其他Ability-開源基礎軟件社區

(2)使用featureAbility模塊啟動遠程PageAbility

在Want模塊中,有一個deviceId屬性,該屬性表示運行指定Ability的設備ID,也就是若我們知道了其他設備的標識碼和包名稱以及具體的Ability名稱,我們就可以啟動其他設備的應用程序。該屬性的值需要使用DeviceManager模塊的接口獲取,當前僅對系統應用開放,也就是自定義的應用程序是無法調起它的Ability。由于設備有限,無法提供測試,因此具體的操作詳見官方文檔。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: ??51CTO開源基礎軟件社區
相關推薦

2022-05-24 15:06:57

AbilityeTS FA鴻蒙

2022-09-08 15:18:51

Ability鴻蒙

2022-02-17 21:05:26

AbilityJS FAJava PA

2023-03-24 14:52:27

AbilityPage應用

2021-01-06 10:59:14

鴻蒙HarmonyOSPage Abilit

2015-05-12 10:47:49

openstack k開源分析

2018-03-28 08:09:54

ABB Ability工業云邊緣計算

2010-03-22 15:38:46

Python常用模塊

2024-11-01 10:30:05

2014-01-15 11:25:30

2022-02-17 21:28:08

AbilityJSFA鴻蒙

2021-07-29 14:03:35

鴻蒙HarmonyOS應用

2022-03-04 09:59:16

logging模塊函數程序

2023-03-09 15:55:17

JavaScriptURLCSS

2022-11-22 13:00:38

2022-12-30 08:17:28

Gradle多模塊項目

2025-01-08 07:38:39

setup模塊Ansible網絡

2011-03-31 13:40:48

2010-07-20 13:02:03

SQL Server索

2022-07-11 16:26:37

eTS計算鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 欧美色综合一区二区三区 | 狠狠综合久久av一区二区老牛 | 91小视频在线 | 亚洲一区二区电影在线观看 | 久久中文视频 | 日本精品免费在线观看 | 大香在线伊779 | 一区二区三区中文字幕 | 看羞羞视频免费 | 亚洲成av | 成人在线精品视频 | 毛片在线免费播放 | 少妇一区在线观看 | 午夜一区二区三区在线观看 | 精品成人av| 精品一区二区三区在线观看国产 | 午夜寂寞福利视频 | 国产高清视频 | 午夜一区二区三区在线观看 | 欧美久久一级特黄毛片 | 国产精品亚洲欧美日韩一区在线 | 天天拍天天操 | 性高湖久久久久久久久aaaaa | 亚洲最新在线视频 | 一区二区三区四区不卡视频 | 欧美成人一区二区三区 | 亚洲高清电影 | 亚洲一区二区视频在线播放 | 天天干天天爱天天操 | 国产精品久久久爽爽爽麻豆色哟哟 | 欧美区在线 | 国产中文 | 色又黄又爽网站www久久 | 一区二区在线 | 日韩在线中文 | 欧美xxxx色视频在线观看免费 | 亚洲视频在线观看 | 日日日日操 | 亚洲精品一区二区另类图片 | www.亚洲.com |