const { ElectronEgg } = require('ee-core'); const { app, Menu, ipcMain } = require('electron'); const lifecycle = require('./preload/lifecycle'); const { preload } = require('./preload'); // new app const electronApp = new ElectronEgg(); // 创建应用菜单 function createApplicationMenu() { const template = [ { label: '查看', submenu: [ { label: '显示/隐藏服务日志', accelerator: 'F12', click: () => { if (lifecycle.logWindowManager) { lifecycle.logWindowManager.toggle(); } } }, { type: 'separator' }, { role: 'reload', label: '刷新' }, { role: 'forceReload', label: '强制刷新' }, { type: 'separator' }, { role: 'toggleDevTools', label: '开发者工具' } ] }, { label: '帮助', submenu: [ { label: '使用说明', click: () => { // 可以打开帮助文档 } }, { type: 'separator' }, { label: '关于', click: () => { // 可以显示关于信息 } } ] } ]; const menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); } // 注册 IPC 处理器 ipcMain.handle('show-log-window', () => { if (lifecycle.logWindowManager) { lifecycle.logWindowManager.show(); } }); ipcMain.handle('hide-log-window', () => { if (lifecycle.logWindowManager) { lifecycle.logWindowManager.hide(); } }); ipcMain.handle('toggle-log-window', () => { if (lifecycle.logWindowManager) { lifecycle.logWindowManager.toggle(); } }); // register lifecycle (绑定 this 上下文) electronApp.register("ready", lifecycle.ready.bind(lifecycle)); electronApp.register("electron-app-ready", () => { lifecycle.electronAppReady.bind(lifecycle)(); createApplicationMenu(); }); electronApp.register("window-ready", lifecycle.windowReady.bind(lifecycle)); electronApp.register("before-close", lifecycle.beforeClose.bind(lifecycle)); // register preload electronApp.register("preload", preload); // run electronApp.run();