main.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const { app, BrowserWindow, Menu } = require('electron');
  2. const path = require('path');
  3. const {writeLog} = require('./src/log/log-writer.js')
  4. function createWindow() {
  5. const isMac = process.platform === 'darwin';
  6. const win = new BrowserWindow({
  7. show: false, // 先隐藏,避免白屏
  8. frame: !isMac, // 非 macOS 无边框
  9. titleBarStyle: isMac ? 'hiddenInset' : 'default', // macOS 隐藏标题栏但保留控制按钮
  10. webPreferences: {
  11. nodeIntegration: true,
  12. contextIsolation: false,
  13. },
  14. });
  15. // 去掉应用菜单栏
  16. Menu.setApplicationMenu(null);
  17. if (!isMac) win.removeMenu(); // Windows / Linux 额外保险
  18. // 启动即最大化
  19. win.maximize();
  20. // 加载 Taro 编译后的 H5 页面
  21. // win.loadFile(path.join(__dirname, './dist/h5/index.html'));
  22. // 加载外置 H5 页面
  23. win.loadFile(path.join(process.cwd(), 'h5/index.html'));
  24. // 页面准备好再显示,防止视觉闪烁
  25. win.once('ready-to-show', () => win.show());
  26. }
  27. app.whenReady().then(createWindow);
  28. app.on('window-all-closed', () => {
  29. if (process.platform !== 'darwin') app.quit();
  30. });
  31. app.on('activate', () => {
  32. if (BrowserWindow.getAllWindows().length === 0) createWindow();
  33. });
  34. ipcMain.handle('write-log', (_, level, msg) => {
  35. writeLog(level, msg);
  36. });