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浏览量
17477 -
组件
+关注
关注
1文章
512浏览量
17816 -
鸿蒙
+关注
关注
57文章
2345浏览量
42822
发布评论请先 登录
相关推荐
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模型下
评论