From cc8a8e142e4a528ca5ad40c05c6c6d07d653e592 Mon Sep 17 00:00:00 2001 From: Allen Date: Wed, 7 May 2025 07:21:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=B0=83=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.ts | 57 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/src/main.ts b/src/main.ts index a35b624..dea7502 100644 --- a/src/main.ts +++ b/src/main.ts @@ -141,6 +141,17 @@ const createWindow = () => { callback(true); }); + // 最小化到系统托盘 + win.on('minimize', () => { + win.hide(); + }); + + // 监听窗口关闭(用户点击右上角X) + win.on('close', (event) => { + event.preventDefault(); + win.hide(); + }); + // production a bad jabe const handleDevTools = () => { if (win.webContents.isDevToolsOpened()) { @@ -158,27 +169,13 @@ const createWindow = () => { win.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/login.html`)); } - // 最小化到系统托盘 - win.on('minimize', () => { - win.hide(); // 隐藏窗口 - }); - - // 监听窗口关闭(用户点击右上角X) - win.on('close', (event) => { - event.preventDefault(); - win.hide(); - }); - // 创建托盘图标 - const iconPath = path.join(process.resourcesPath, 'assets', 'tray.png'); - console.log(iconPath); - const tray = new Tray(iconPath); - const contextMenu = Menu.buildFromTemplate([ { label: '显示窗口', click: () => win.show() }, { label: '退出程序', click: () => app.exit() } ]); - + const iconPath = path.join(process.resourcesPath, 'assets', 'tray.png'); + const tray = new Tray(iconPath); tray.setToolTip('中国电信-工作台'); tray.setContextMenu(contextMenu); @@ -188,11 +185,6 @@ const createWindow = () => { }); }; -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.on('ready', createWindow); - // 在非 macOS 平台上,关闭所有窗口时退出应用 // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits @@ -203,11 +195,18 @@ app.on('window-all-closed', () => { } }); -// 在 macOS 平台上,点击 dock 图标时重新创建窗口 -app.on('activate', () => { - // On OS X it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (BrowserWindow.getAllWindows().length === 0) { - createWindow(); - } -}); \ No newline at end of file +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.whenReady().then(() => { + createWindow(); + + // 在 macOS 平台上,点击 dock 图标时重新创建窗口 + app.on('activate', () => { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } + }); +});