概述

鸿蒙开发者官方文档更新速度很快,不一会就更新到17版本了,在鸿蒙 Next 的最新API17中,针对 PC 和 2in1 设备的窗口管理功能得到了显著增强。新增的主窗尺寸记忆功能使得应用能够记住窗口的大小和位置,从而在下次启动时恢复到之前的设置。这对于提升用户体验和应用的便捷性具有重要意义。

设置是否启用主窗的尺寸记忆功能,使用Promise异步回调,仅对2in1设备生效。在同一个UIAbility下, 可记忆最后关闭的主窗口尺寸,也可针对每个主窗口尺寸单独进行记忆。只有在UIAbility启动模式为specified,且isSaveBySpecifiedFlag设置为true时,才能针对每个主窗口尺寸进行单独记忆。

启用记忆功能后,记忆主窗口关闭时的尺寸;对应主窗口再次启动时,以记忆的尺寸按照规则进行打开

主窗尺寸记忆功能

主窗尺寸记忆功能允许开发者设置是否自动保存和恢复窗口的尺寸和位置。通过简单的 API 调用,开发者可以轻松实现这一功能。

API 介绍

相关 API 为 setWindowRectAutoSave,其作用是设置是否自动保存当前应用主窗的尺寸和位置。

使用方法

以下是一个简单的示例,展示如何在应用中启用主窗尺寸记忆功能:

// EntryAbility.ets
import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  // ...
  onWindowStageCreate(windowStage: window.WindowStage): void {
    console.info('onWindowStageCreate');
    try {
      let promise = windowStage.setWindowRectAutoSave(true, true);
      promise.then(() => {
        console.info('Succeeded in setting window rect auto-save');
      }).catch((err: BusinessError) => {
        console.error(`Failed to set window rect auto-save. Cause code: ${err.code}, message: ${err.message}`);
      });
    } catch (exception) {
      console.error(`Failed to set window rect auto-save. Cause code: ${exception.code}, message: ${exception.message}`);
    }
  }
}

参数说明

  • enabled: 布尔值,表示是否自动保存窗口的尺寸和位置。设置是否启用主窗的尺寸记忆功能,true为启用,false为不启用。
  • isSaveBySpecifiedFlag :布尔值 设置specified模式下是否启用对窗口进行单独记忆,true为启用,false为不启用。

    应用场景

    主窗尺寸记忆功能适用于需要持久化窗口状态的应用场景,例如:
  • 桌面应用:用户可以根据自己的喜好调整窗口大小和位置,应用在下次启动时自动恢复到之前的设置。
  • 多任务处理:在多任务环境下,用户可以将应用窗口调整到特定位置,方便与其他应用协同工作。

注意事项

  • 权限要求:使用此功能可能需要特定的权限,请确保在应用的配置文件中声明相关权限。
  • 兼容性:此功能可能仅在特定版本的鸿蒙系统上可用,请确保您的设备和系统版本支持该功能。

总结

通过新增的主窗尺寸记忆功能,鸿蒙 Next 为开发者提供了一种简单而有效的方法来提升用户体验。开发者可以轻松地在应用中实现窗口状态的持久化,从而让用户在使用过程中感受到更加便捷和个性化的体验。希望本文的介绍能帮助您更好地理解和使用这一功能。


希望这篇文章能对您有所帮助!如果您需要进一步的信息或有其他问题,欢迎随时提问。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐