首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏鸿蒙开发笔记

    深入理解HarmonyOS UIAbility:生命周期、WindowStage与启动模式探析

    WindowStage创建完成后会触发onWindowStageCreate()回调,可以在该回调中设置UI界面加载和订阅WindowStage的事件。 : Window.WindowStage) { // 设置WindowStage的事件订阅(获焦/失焦、可见/不可见) // 设置UI界面加载 windowStage.loadContent WindowStage的创建和销毁在UIAbility实例创建完成后,在进入Foreground状态之前,系统会创建一个WindowStage。 : Window.WindowStage) { // 设置WindowStage的事件订阅(获焦/失焦、可见/不可见) // 设置UI界面加载 windowStage.loadContent : Window.WindowStage) { // 设置WindowStage的事件订阅(获焦/失焦、可见/不可见) // 设置UI界面加载 windowStage.loadContent

    1.2K10编辑于 2024-07-09
  • 来自专栏HarmonyOS NEXT实战

    HarmonyOS NEXT实战:沉浸式效果工具

    : Map<string, window.WindowStage> = new Map<string, window.WindowStage>(); /** * 登记 * @param >, WindowStage: Map<string, window.WindowStage>) { UIAbilityContext.forEach((value: Context, key ((value: window.WindowStage, key: string, map: Map<string, window.WindowStage>) => { StageModel.WindowStage.set const windowStage = StageModel.WindowStage.get(this.windowStageName) if (windowStage) { this.windowStage = windowStage } else { throw new Error(`[异常][未获取到windowStage,请检查StageModel

    17300编辑于 2025-06-25
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践 —— 应用内的生命周期流转

    WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载,设置WindowStage的事件订阅。 onWindowStageCreate')  // 缓存应用状态: windowStage  AppStorage.setOrCreate('windowStage', windowStage)  / ') windowStage: window.WindowStage | null = AppStorage.get('windowStage') || null  // ...}场景三:页面初始化场景描述以及生命周期钩子选择场景 ') windowStage: window.WindowStage | null = AppStorage.get('windowStage') || null  subWindowClass: window.Window ') windowStage: window.WindowStage | null = AppStorage.get('windowStage') || null;  subWindowClass: window.Window

    84520编辑于 2024-12-06
  • 来自专栏个人路线

    【仓颉开发实战】基于 OpenHarmony 实现拨打电话功能

    : WindowStage): Unit { Hilog.info(1, "Cangjie", "MainAbility onWindowStageCreate.") _windowStage = Some(windowStage) windowStage.loadContent("EntryView") } } public class Global { public static var _abilityContext: Option<UIAbilityContext> = None public static var _windowStage : Option<WindowStage> = None public static prop abilityContext: UIAbilityContext { get() : WindowStage { get() { match (_windowStage) { case Some(stage) =

    13410编辑于 2026-01-28
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践 —— 基于ArkUI的透明页面效果

    核心代码在Ability中获取windowStage实例。 onWindowStageCreate(windowStage: window.WindowStage): void {  // Main window is created, set main page for this ability  windowStage.loadContent('pages/Index', (err) => {  // 这里需要注意为了确保windowStage实例获取成功, 我们最好在loadContent回调中回去,能保证页面加载成功的时候一定能讲windowStage实例存到AppStorage对象中  AppStorage.setOrCreate("windowStage ("windowStage") as window.WindowStage;} build() {  ... 

    34810编辑于 2024-12-21
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS 5】鸿蒙中的UIAbility详解(二)

    : window.WindowStage): void { windowStage.loadContent('pages/Index', this.storage, (err) => { : ${JSON.stringify(windowStage)}`); }, // 当窗口处于活动状态时被调用 onWindowStageActive(uiAbility, windowStage: window.WindowStage) { hilog.info(DOMAIN_NUMBER, TAG, `onWindowStageActive uiAbility.launchWant , windowStage: window.WindowStage) { hilog.info(DOMAIN_NUMBER, TAG, `onWindowStageInactive uiAbility.launchWant : ${JSON.stringify(windowStage)}`); }, // 当窗口被销毁时被调用 onWindowStageDestroy(uiAbility, windowStage

    40110编辑于 2025-06-01
  • 来自专栏鸿蒙开发实践

    鸿蒙开发实战:揭秘页面与项目生命周期,实现精准监控

    WindowStage是应用窗口的抽象表示,它包含了窗口的渲染、事件处理等功能。当WindowStage创建完成后,系统会调用onWindowStageCreate()回调方法。 创建时触发 onWindowStageCreate(windowStage: window.WindowStage): void { // 获取应用上下文 const windowStage: window.WindowStage): void { // 在这里可以执行页面激活时的操作,如恢复状态、刷新数据等 // ... } // 当WindowStage失焦时触发 onWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void (ability: UIAbility, windowStage: window.WindowStage): void { // 在这里可以执行WindowStage销毁前的清理操作

    45310编辑于 2025-06-29
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS 5】鸿蒙中的UIAbility详解(一)

    通过WindowStage的loadContent()方法指定页面路径。 export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage: window.WindowStage : window.WindowStage) { windowStage.loadContent('pages/Main', () => {}); // 设置启动页面 } onCreate(want onWindowStageCreate(windowStage: window.WindowStage) { windowStage.loadContent('pages/Index'); / 释放通过WindowStage获取的资源,注销事件订阅(off('windowStageEvent'))。4、WindowStageDestroyWindowStage销毁时触发(UI资源释放)。

    48310编辑于 2025-06-01
  • 来自专栏鸿蒙开发笔记

    鸿蒙实战:ArkTs 开发一个鸿蒙应用

    当 HarmonyOS 应用启动时,系统首先会创建一个 EntryAbility 实例,实例创建完成之后,在进入 Foreground 之前,系统会创建一个 WindowStage 实例,每一个 Ability 实例,都对应一个 WindowStage 实例。 WindowStage 为本地窗口管理器,用于管理窗口相关的内容,例如与界面相关的获焦/失焦、可见/不可见。Ability 的生命周期和 WindowStage 回调对应的关系,如下图所示。 左图表示 UIAbility 的生命周期,每个生命周期分别做什么事,我会在下篇文章中分析,而右图表示 WindowStage 回调。 onWindowStageCreate(windowStage: window.WindowStage): void { windowStage.loadContent('pages/Index

    72920编辑于 2024-07-22
  • 来自专栏鸿蒙开发笔记

    纯血鸿蒙APP实战开发——全局弹窗封装案例

    // 创建子窗口 private createSubWindow(windowStage: window.WindowStage | null) { try { if (! windowStage) { return; } windowStage.createSubWindow('mySubWindow', (err: BusinessError // 为当前WindowStage加载命名路由页面 private loadContent(path: string) { if (this.subWindow) { // TODO:

    50020编辑于 2025-02-14
  • 来自专栏历史专栏

    【愚公系列】2023年12月 HarmonyOS教学课程 041-Stage模型(概述和组件配置)

    它主要包含UIAbility组件和ExtensionAbility组件、WindowStage、Context和AbilityStage。 WindowStageWindowStage是应用界面的顶层容器,它负责管理应用界面的显示和布局。 WindowStage可以包含一个或多个UIAbility组件,并负责协调它们之间的界面切换和交互。 在WindowStage中的每个UIAbility组件都对应一个Context对象,用于提供界面相关的上下文信息。 AbilityStage可以包含一个或多个WindowStage,用于管理多个应用界面的生命周期和切换。

    21210编辑于 2025-06-02
  • harmony OS NEXT-UIAbility内状态-LocalStorage详细介绍

    1.2.3 效果展示1.3 LocalStorage多个页面共享UIAbility的使用方法1.3.1 多个页面的使用方法依旧是准备共享数据,放置在设置当前应用的加载页面(UIAbility共享),只要是当前windowstage windowStage.loadContent('pages/10/TestLocalStorage03',storage);接收数据const storage = LocalStorage.getShared ()//其他步骤同单个页面传输吗,这里就不再叙述完整代码展示UIAbility内代码 onWindowStageCreate(windowStage: window.WindowStage): void { 'uname':'公孙离', 'age':'18', } const storage = new LocalStorage(data) // //只要是当前windowStage 内的界面,都可以共享这份数据 windowStage.loadContent('pages/10/TestLocalStorage03',storage); }页面1// const data:

    35430编辑于 2025-03-30
  • harmony-utils之AppUtil,APP相关工具类

    let windowStage = AppUtil.getWindowStage(); LogUtil.error(JSON.stringify(windowStage, null, 2));getMainWindow : ${windowStage}`); }, onWindowStageActive(ability, windowStage) { LogUtil.info(`AbilityLifecycleCallback : ${windowStage}`); }, onWindowStageInactive(ability, windowStage) { LogUtil.info(`AbilityLifecycleCallback : ${windowStage}`); }, onWindowStageDestroy(ability, windowStage) { LogUtil.info(`AbilityLifecycleCallback : ${windowStage}`); }, onAbilityDestroy(ability) { LogUtil.info(`AbilityLifecycleCallback

    21200编辑于 2025-06-28
  • 来自专栏鸿蒙开发笔记

    OpenHarmony设备环境查询:Environment

    window from '@ohos.window'; export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage : window.WindowStage) { windowStage.loadContent('pages/Index'); let window = windowStage.getMainWindow

    28210编辑于 2025-05-16
  • 来自专栏鸿蒙开发笔记

    HarmonyOS 开发实践——基于子窗口实现应用内悬浮窗

    核心代码在EntryAbility中获取WindowStage。 onWindowStageCreate(windowStage: window.WindowStage): void {   // Main window is created, set main page '');   return; } // 保存窗口管理器 AppStorage.setOrCreate("windowStage", windowStage); hilog.info(0x0000, 'testTag 核心代码通过windowStage获取主窗口的Router,实现主窗口的Router跳转。. A:只要能获取到windowStage就能创建并使用子窗口。

    1.5K20编辑于 2024-11-05
  • 来自专栏CSDNToQQCode

    HarmonyOS-ArkTS-UIAbility生命周期——【坚果派-红目香薰】

    WindowStageCreate:UIAbility创建完成之后,在进入Foreground之前,系统会创建一个WindowStageWindowStage创建完成后会进入onWindowStageCreate 回调,我们可以在该回调中设置UI页面加载,设置WindowStage订阅事件,在onWindowStageCreate回调中通过loaclContent()方法设置应用要加载的页面,并根据需要订阅WindowStage UIAbility实例销毁之前,会先进入到onWindowStageDestroy()回调,我们可以在这个回调中释放UI界面的资源,例如在onWindowStageDestroy()中注销获焦|失焦等WindowStage

    99310编辑于 2024-01-25
  • 来自专栏鸿蒙开发笔记

    鸿蒙开发实战案例:状态栏动画实现案例

    aboutToAppear(): void { // 初始化窗口管理model const windowStage: window.WindowStage | undefined = AppStorage.get('windowStage'); // 没有windowStage将无法执行下列逻辑 if (! windowStage) { logger.error(TAG, 'windowStage init error!') ; return; } this.windowModel.setWindowStage(windowStage); // 设置沉浸模式及状态栏白色

    56820编辑于 2025-02-25
  • 来自专栏鸿蒙开发笔记

    HarmonyOS应用开发——程序框架UIAbility、启动模式与路由跳转

    , set main page for this ability // 使用 windowStage.loadContent设置要加载的页面,并根据需要订阅WindowState的事件 // windowStage.loadContent('pages/Index', (err, data) => { windowStage.loadContent('pages/StudentListPage 在onWindowStageCreate(windowStage)中通过loadContent接口设置应用要加载的页面。 onWindowStageCreate(windowStage: window.WindowStage) { // 设置UI页面加载 // 设置WindowStage的事件订阅 windowStage.loadContent('pages/Index', (err, data) => { windowStage.loadContent('pages/StudentListPage

    1.5K20编辑于 2024-06-18
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS NEXT】鸿蒙应用如何进行页面横竖屏切换以及注意事项,自动切换横竖屏,监听横竖屏

    window } from '@kit.ArkUI';export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage : window.WindowStage): void { // 挂载globalThis上,可以当全局对象使用。 当然此处实现方式因人而异,你可以放在单例里,或者localstore中等等 globalThis.windowClass = windowStage.getMainWindowSync(); windowStage.loadContent('pages/RotationTestPage', (err) => { if (err.code) { return;

    91200编辑于 2025-03-24
  • 详解鸿蒙Next仓颉开发语言中的全屏模式

    首先,来到应用的main_ability.cj文件的onWindowStageCreate方法下,设置全屏模式我们要先获取到主窗口,然后设置全屏,实现代码如下:windowStage.getMainWindow 还是在刚才的方法中,获取顶部避让区域的方法如下:let topArea = windowStage.getMainWindow().getWindowAvoidArea(AvoidAreaType.TYPE_SYSTEM topAreaHeight = topArea.topRect.heighttopAreaHeight就是顶部避让区域的高度尺寸,底部避让区域的获取方式稍有不同,需要单独获取:let bottomArea = windowStage.getMainWindow 另外,有些情况下大家可能会需要用到屏幕的尺寸,获取屏幕尺寸的方法如下:let windowRect = windowStage.getMainWindow().getWindowProperties(

    22110编辑于 2025-06-19
领券