API切換概述
FA模型和Stage模型由于線程模型和進程模型的差異,部分接口僅在FA模型下才能使用,針對這部分接口在SDK的接口中有FAModelOnly的標記,用于提醒開發者這部分接口僅能在FA模型下使用。因此在切換到Stage模型時,需要將應用中用到的FAModelOnly接口替換成Stage模型下對應的接口。下面是startAbility的接口切換示例,全量接口列表請查看后續章節:
startAbility接口由FA模型切換到Stage模型的示例: 開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- FA模型示例
import featureAbility from '@ohos.ability.featureAbility'; import Want from '@ohos.app.ability.Want'; import hilog from '@ohos.hilog'; const TAG: string = 'PagePageAbilityFirst'; const domain: number = 0xFF00; @Entry @Component struct PagePageAbilityFirst { build() { Column() { List({ initialIndex: 0 }) { ListItem() { Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) { //... } .onClick(() = > { (async (): Promise< void > = > { try { hilog.info(domain, TAG, 'Begin to start ability'); let want: Want = { bundleName: 'com.samples.famodelabilitydevelop', moduleName: 'entry', abilityName: 'com.samples.famodelabilitydevelop.PageAbilitySingleton' }; await featureAbility.startAbility({ want: want }); hilog.info(domain, TAG, `Start ability succeed`); } catch (error) { hilog.error(domain, TAG, 'Start ability failed with ' + error); } })() }) } //... } //... } //... } }
- Stage示例示例
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
import hilog from '@ohos.hilog';
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BusinessError } from '@ohos.base';
import { Caller } from '@ohos.app.ability.UIAbility';
const TAG: string = '[Page_UIAbilityComponentsInteractive]';
const DOMAIN_NUMBER: number = 0xFF00;
@Entry
@Component
struct Page_UIAbilityComponentsInteractive {
private context = getContext(this) as common.UIAbilityContext;
caller: Caller | undefined = undefined;
build() {
Column() {
//...
List({ initialIndex: 0 }) {
ListItem() {
Row() {
//...
}
.onClick(() = > {
// context為Ability對象的成員,在非Ability對象內部調用需要
// 將Context對象傳遞過去
let wantInfo: Want = {
deviceId: '', // deviceId為空表示本設備
bundleName: 'com.samples.stagemodelabilitydevelop',
moduleName: 'entry', // moduleName非必選
abilityName: 'FuncAbilityA',
parameters: { // 自定義信息
info: '來自EntryAbility Page_UIAbilityComponentsInteractive頁面'
},
};
// context為調用方UIAbility的UIAbilityContext
this.context.startAbility(wantInfo).then(() = > {
hilog.info(DOMAIN_NUMBER, TAG, 'startAbility success.');
}).catch((error: BusinessError) = > {
hilog.error(DOMAIN_NUMBER, TAG, 'startAbility failed.');
});
})
}
//...
}
//...
}
//...
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
API
+關注
關注
2文章
1452瀏覽量
61420 -
框架
+關注
關注
0文章
396瀏覽量
17210 -
鴻蒙
+關注
關注
56文章
2261瀏覽量
42433
發布評論請先 登錄
相關推薦
鴻蒙Java API中aafwk是什么概念?有什么用途?
1、鴻蒙Java API中的說明中aafwk是什么概念?什么文檔的縮寫?用途是什么?如ohos.aafwk.ability2、和ohos.accessibility.ability這一
發表于 05-13 10:06
OpenHarmony 應用開發SDK、API 與基礎工具
一、整體說明
ArkTS 語言是鴻蒙系統主推的應用開發語言。因此鴻蒙系統提供給開發者的 API 絕大部分也是 ArkTS 語言的。
發表于 09-19 15:45
windows api大全
Win32 API是從事Windows應用程序開發所必備的。
首先對Win32 API函數做完整的概述;然后收錄五大類函數:
發表于 10-14 11:48
?133次下載
如何搭建API程序_框架api接口規范
基于互聯網的應用正變得越來越普及,在這個過程中,有更多的站點將自身的資源開放給開發者來調用。對外提供的API 調用使得站點之間的內容關聯性更強,同時這些開放的平臺也為用戶、開發者和中小網站帶來了更大的價值。搭建
發表于 01-04 17:48
?1.2w次閱讀
基于Java的接口快速開發框架——magic-api
magic-api 是一個基于Java的接口快速開發框架,編寫接口將通過magic-api提供的UI界面完成,自動映射為HTTP接口,無需定義Controller、Service、Da
發表于 07-19 11:42
?741次閱讀
鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】
本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
鴻蒙開發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程序框架服務:PageAbility切換 組件切換
FA模型中PageAbility對應Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
鴻蒙開發Ability Kit程序框架服務:ServiceAbility切換 組件切換
FA模型中的ServiceAbility對應Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility為系統API,只有系統
評論