升级electron egg脚手架版本

This commit is contained in:
2025-10-16 20:14:55 +08:00
parent c04be0264a
commit 7dac2b8c7d
18 changed files with 860 additions and 148 deletions

View File

@@ -1,19 +1,87 @@
const { ElectronEgg } = require('ee-core');
const { Lifecycle } = require('./preload/lifecycle');
const { app, Menu, ipcMain } = require('electron');
const lifecycle = require('./preload/lifecycle');
const { preload } = require('./preload');
// new app
const app = new ElectronEgg();
const electronApp = new ElectronEgg();
// register lifecycle
const life = new Lifecycle();
app.register("ready", life.ready);
app.register("electron-app-ready", life.electronAppReady);
app.register("window-ready", life.windowReady);
app.register("before-close", life.beforeClose);
// 创建应用菜单
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
app.register("preload", preload);
electronApp.register("preload", preload);
// run
app.run();
electronApp.run();