Files
pqs-9100_client/electron/main.js

87 lines
2.1 KiB
JavaScript
Raw Normal View History

2025-10-15 14:12:24 +08:00
const { ElectronEgg } = require('ee-core');
2025-10-16 20:14:55 +08:00
const { app, Menu, ipcMain } = require('electron');
const lifecycle = require('./preload/lifecycle');
2025-10-15 14:12:24 +08:00
const { preload } = require('./preload');
// new app
2025-10-16 20:14:55 +08:00
const electronApp = new ElectronEgg();
2025-10-15 14:12:24 +08:00
2025-10-16 20:14:55 +08:00
// 创建应用菜单
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));
2025-10-15 14:12:24 +08:00
// register preload
2025-10-16 20:14:55 +08:00
electronApp.register("preload", preload);
2025-10-15 14:12:24 +08:00
// run
2025-10-16 20:14:55 +08:00
electronApp.run();