HarmonyOS 主窗口获取?

如何获取应用主窗口, 我看文档和示例代码都是通过window.WindowStage

我想在项目任何地方通过window.WindowStage获取主window, 我看文档和示例代码都是在启动时将window.WindowStage对象存储为全局对象, 作为后续全局使用.

是否有方法在任意地方拿到window.WindowStage对象, 然后通过getMainWindow获取窗口?

阅读 560
1 个回答

目前获取主窗口需要使用window.getLastWindow()或者windowStage.getMainWindowSync()获取。

在非UIAbility的拓展类中使用需要使用AppStorage将Context和windowStage传入方法中。

在被@Entry修饰的struct中可以在AboutToAppear生命周期中调用getContext(this)获取上下文对象。 window需要先获取对象属性才能获取窗口大小。

参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-0000001815246534-V5\#ZH-CN\_TOPIC\_0000001881258981\_\_windowproperties

getContext(this)在自定义类的使用参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ability-kit-0000001769732194-V5\#section552117429309