如何判断当前应用是否在浮窗状态或者分屏状态(HarmonyOS 鸿蒙Next)

如何判断当前应用是否在浮窗状态或者分屏状态(HarmonyOS 鸿蒙Next) 【设备信息】Mate60

【API版本】Api12

【DevEco Studio版本】5.0.3

【问题描述】如何判断当前应用是否在浮窗状态或者分屏状态

2 回复

开启窗口状态监听windowStatusChange,返回WindowStatusType即可获取

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-window-V13?catalogVersion=V13

更多关于如何判断当前应用是否在浮窗状态或者分屏状态(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,判断当前应用是否处于浮窗状态或分屏状态,可以通过WindowManager类来实现。具体步骤如下:

  1. 获取WindowManager实例: 使用WindowManager类来管理窗口状态。可以通过getWindowManager()方法获取WindowManager的实例。

  2. 获取窗口模式: 调用WindowManagergetWindowMode()方法,可以获取当前窗口的模式。返回值为WindowMode枚举类型,包含以下几种模式:

    • WINDOW_MODE_FULLSCREEN:全屏模式。
    • WINDOW_MODE_FLOATING:浮窗模式。
    • WINDOW_MODE_SPLIT_PRIMARY:分屏模式(主屏)。
    • WINDOW_MODE_SPLIT_SECONDARY:分屏模式(副屏)。
  3. 判断窗口状态: 根据getWindowMode()的返回值,判断当前应用是否处于浮窗状态或分屏状态。

示例代码:

import window from '@ohos.window';

let windowMode = window.getWindowMode();
if (windowMode === window.WindowMode.WINDOW_MODE_FLOATING) {
    // 当前应用处于浮窗状态
} else if (windowMode === window.WindowMode.WINDOW_MODE_SPLIT_PRIMARY || windowMode === window.WindowMode.WINDOW_MODE_SPLIT_SECONDARY) {
    // 当前应用处于分屏状态
} else {
    // 当前应用处于全屏状态
}
回到顶部