BrowserWindow - win.setVisibleOnAllWorkspaces(visible[, options])

概述

设置窗口在所有虚拟桌面上是否可见。

基本信息

属性
模块 BrowserWindow
类型 Method
鸿蒙支持 支持

OHOS 依赖与基本表现

属性
系统权限依赖 无需申请
主窗 支持
子窗 不适用
悬浮窗 不适用
添加JIT权限 支持
坚盾模式 支持

差异说明

属性
是否存在差异 存在差异
差异说明 workspaces 概念差异:setVisibleOnAllWorkspaces 在鸿蒙下不适用或仅取近似行为

Demo

const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');

let mainWindow = null;
let childWindow = null;

function sendLog(type, message) {
  if (mainWindow && !mainWindow.isDestroyed()) {
    mainWindow.webContents.send('log-message', { type, message, time: new Date().toLocaleTimeString() });
  }
}

app.whenReady().then(() => {
  mainWindow = new BrowserWindow({
    width: 1400, height: 900,
    webPreferences: { preload: path.join(__dirname, '..', 'preload.js'), contextIsolation: true, nodeIntegration: false },
    title: 'Test setVisibleOnAllWorkspaces and restore',
  });
  mainWindow.loadFile(path.join(__dirname, '..', 'index.html'));

  ipcMain.handle('method:setVisibleOnAllWorkspaces-and-restore', () => {
    const orig = mainWindow.isVisibleOnAllWorkspaces();
    mainWindow.setVisibleOnAllWorkspaces(true);
    const after = mainWindow.isVisibleOnAllWorkspaces();
    mainWindow.setVisibleOnAllWorkspaces(orig);
    return { original: orig, setTo: after, restoredTo: mainWindow.isVisibleOnAllWorkspaces() };
  });
});

app.on('window-all-closed', () => { app.quit(); });