想要实现electron一打开,窗口就是全屏状态,代码怎么写?

在 Electron 中实现应用启动时自动全屏显示窗口,可通过以下两种主流方法实现(基于主进程代码):


方法 1:创建窗口时直接设置 fullscreen: true

main.js(主进程文件)中创建 BrowserWindow 实例时,通过配置项启用全屏:

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

function createWindow() {
  const mainWindow = new BrowserWindow({
    fullscreen: true, // 关键配置:启动即全屏
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    }
  });

  mainWindow.loadFile('index.html'); // 加载你的页面
}

app.whenReady().then(createWindow);

特点

  • 立即生效:窗口创建后直接全屏,无过渡动画。
  • ⚙️ 兼容性:跨平台支持良好(Windows/macOS/Linux)。

方法 2:在窗口就绪事件中动态调用 setFullScreen(true)

若需在窗口内容加载完成后全屏(例如避免白屏),可监听 ready-to-show 事件:

function createWindow() {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600, // 初始尺寸可自定义
    webPreferences: { /* ... */ }
  });

  mainWindow.once('ready-to-show', () => {
    mainWindow.setFullScreen(true); // 页面渲染完成后全屏
  });

  mainWindow.loadFile('index.html');
}

适用场景

  • 需先显示页面框架再全屏(如避免全屏白屏)。
  • ⏱️ 需精确控制全屏时机(如用户交互后触发)。

扩展技巧:kiosk 模式(锁定全屏)

禁用用户退出全屏(如信息亭场景),使用 kiosk: true

new BrowserWindow({
  kiosk: true, // 强制全屏且无法手动退出
  webPreferences: { /* ... */ }
});

注意:此模式下用户无法通过快捷键(如 Esc)退出全屏,需程序控制。


常见问题解决

  1. 全屏后窗口无内容?

    • 确保加载路径正确(如 loadFile('index.html')loadURL())。
    • 检查渲染进程是否有 JavaScript 错误(开发者工具:mainWindow.webContents.openDevTools())。
  2. 多窗口全屏控制
    每个窗口需独立调用 setFullScreen(),可通过 ipcMain 接收渲染进程指令动态切换。


小结(两种方法对比)

方法 代码位置 特点 适用场景
创建时配置 new BrowserWindow 启动即全屏 简单场景,无需延迟
事件中动态设置 ready-to-show 内容加载后全屏 避免渲染前白屏
kiosk 模式 kiosk: true 禁用退出,强制全屏 信息亭、广告机等

按需选择方案,通常 方法1 最简洁高效。完整示例可参考 Electron 官方文档或 。

你可能感兴趣的:(electron,javascript,前端)