PageAbility切換
FA模型中PageAbility對應Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
- 在Stage應用中[創建UIAbility]。
- 將FA應用中PageAbility的代碼遷移到新創建的UIAbility中。 FA應用中PageAbility和Stage應用中的UIAbility生命周期基本一致,兩者的生命周期詳細對比見下表。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]FA的PageAbility Stage的UIAbility 對應關系描述 onCreate(): void onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void 兩者的意義和調用時機一致,Stage模型在回調中新增了參數,方便開發者在創建的時候獲取啟動相關的數據。 NA onWindowStageCreate(windowStage: window.WindowStage): void Stage模型新增,窗口創建時由系統回調。 onActive(): void on(eventType: 'windowStageEvent', callback: Callback): void; WindowStageEventType.ACTIVE 兩者的意義和調用時機一致。Stage模型下移動到了窗口對象中。 onShow(): void onForeground(): void 兩者的意義和調用時機一致,參數也一致。 onNewWant(want: Want): void onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void 兩者的意義和調用時機一致,Stage模型多了LaunchParam參數來告知應用啟動原因。 onInactive(): void on(eventType: 'windowStageEvent', callback: Callback): void; WindowStageEventType.INACTIVE 兩者的意義和調用時機一致。Stage模型下移動到了窗口對象中。 onHide(): void onBackground(): void 兩者的意義和調用時機一致,參數也一致。 NA onWindowStageDestroy(): void Stage模型新增,窗口銷毀時由系統回調。 onDestroy(): void onDestroy(): void 兩者的意義和調用時機一致,參數也一致。
- 對遷移過來的代碼進行調整,主要有以下兩部分。 1、指定加載頁面的方式不同。
- 在FA模型中,通過在config.json中設置頁面信息來配置需要加載的頁面。
- 在Stage模型中,則是通過在onWindowStageCreate回調中調用windowStage.loadContent實現對頁面的加載。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
例如,開發者希望Ability啟動后加載"pages/Index"頁面,在FA模型中,開發者需要在config.json中加入如下代碼:
"pages" : [
"pages/Index"
]
在Stage模型中,則在MainAbility中實現如下接口:
import { UIAbility } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
export default class TestAbility extends UIAbility {
// ...
onWindowStageCreate(windowStage: window.WindowStage) {
hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageCreate');
windowStage.loadContent('testability/pages/Index', (err, data) = > {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s',
JSON.stringify(data) ?? '');
});
}
// ...
}
2、在resources/base/profile/main_pages.json中配置頁面,以"pages/Index"為例:
{
"src": [
"pages/Index"
]
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
框架
+關注
關注
0文章
403瀏覽量
17543 -
組件
+關注
關注
1文章
518瀏覽量
17926 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43059
發布評論請先 登錄
相關推薦
OpenHarmony開發之Ability架構
管理,從而實現對用戶程序的調度。Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分為PageAbility、S
發表于 05-12 15:12
HarmonyOS應用開發-PageAbility生命周期介
pageAbility的生命周期如下圖所示:在代碼中通過調用下列方法實現生命周期操作:onShow() :Ability由后臺不可見狀態切換到前臺可見狀態調用onShow方法,此時用戶在屏幕可以看到
發表于 10-17 11:11
鴻蒙Ability Kit(程序框架服務)【ExtensionAbility組件】
ExtensionAbility組件是基于特定場景(例如服務卡片、輸入法等)提供的應用組件,以便滿足更多的使用場景。
鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】
`AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應用的啟動時間。使用啟動框架應用開發者只需要分別為待初始化的
鴻蒙開發:啟動本地PageAbility
PageAbility相關的能力通過featureAbility提供,啟動本地Ability通過featureAbility中的startAbility接口實現。
鴻蒙開發Ability Kit程序框架服務:FA模型與Stage模型應用組件互通綜述
FA模型與Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA模型提供三種應用組件,分別是PageAbility、ServiceAbility和DataAbility。Stage模型提供了兩種應用
鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 app和deviceConfig的切換
為了便于開發者維護應用級別的屬性配置,Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5中進行配置,并對部分標簽名稱進行了修改,具體差異見下表。
鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 module的切換
從FA模型切換到Stage模型時,開發者需要將config.json文件module標簽下的配置遷移到module.json5配置文件module標簽下,具體差異見下列表格。
鴻蒙開發Ability Kit程序框架服務:ServiceAbility切換 組件切換
應用才可以創建。因此,FA模型的ServiceAbility的切換,對于系統應用和三方應用策略有所不同。下面分別介紹這兩種場景。
鴻蒙開發Ability Kit程序框架服務:API切換概述 API切換
FA模型和Stage模型由于線程模型和進程模型的差異,部分接口僅在FA模型下才能使用,針對這部分接口在SDK的接口中有FAModelOnly的標記,用于提醒開發者這部分接口僅能在FA模型下
評論