在鸿蒙Next(HarmonyOS NEXT)中,判断当前是否处于全屏状态可以通过以下方式实现:
方法一:使用 Window 的 isFullScreen 方法
通过获取当前窗口并检查其全屏状态属性来判断。
import window from '@ohos.window';
// 获取当前窗口
let windowClass: window.Window;
window.getLastWindow(this.context, (err, data) => {
  if (err) {
    console.error('Failed to get the window. Code: ' + JSON.stringify(err));
    return;
  }
  windowClass = data;
  
  // 判断是否全屏
  let isFullScreen = windowClass.isFullScreen;
  console.log(`Current full screen status: ${isFullScreen}`);
});
方法二:监听窗口状态变化
通过注册窗口状态变化事件来动态获取全屏状态。
import window from '@ohos.window';
let windowClass: window.Window;
window.getLastWindow(this.context, (err, data) => {
  if (err) {
    console.error('Failed to get the window. Code: ' + JSON.stringify(err));
    return;
  }
  windowClass = data;
  // 注册窗口状态变化事件
  windowClass.on('windowSizeChange', (state) => {
    let isFullScreen = windowClass.isFullScreen;
    console.log(`Full screen status changed: ${isFullScreen}`);
  });
});
注意事项:
- 权限要求:需在 module.json5中申请ohos.permission.SYSTEM_FLOAT_WINDOW权限(若涉及悬浮窗操作)。
- 上下文对象:this.context需替换为有效的 UIAbility 上下文。
- 生命周期管理:监听事件需在组件销毁时取消注册,避免内存泄漏。
以上方法适用于应用内窗口的全屏状态判断,若涉及系统全局状态需结合其他 API 实现。