升级electron egg脚手架版本
This commit is contained in:
@@ -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();
|
||||
Reference in New Issue
Block a user