使用 electron 的 dialog + tray 托盘栏菜单优雅简单的配置 about 关于本应用的信息,效果下图所示。

electron & about

项目依赖

{ "electron": "^24.4.1", "electron-builder": "^23.6.0", "electron-builder-squirrel-windows": "^24.5.0", "electron-log": "^4.4.8", "electron-updater": "^5.3.0", "electron-vite": "^1.0.23", }

配置 Tray

export function initTrayMenu(tray, mainWindow) { const menu = Menu.buildFromTemplate(template) Menu.setApplicationMenu(menu) const logo = nativeImage.createFromPath(icon) tray = new Tray(logo) const contextMenu = Menu.buildFromTemplate([ { label: '退出', click() { mainWindow.destroy() app.exit() }, }, { label: '重启', click() { app.relaunch() app.exit() }, }, { type: 'separator', }, { label: '关于', click: showAboutInfo, }, ]) tray.setToolTip(`${productName} \n接口调试工具`) // tray.setTitle(`${productName}`) tray.setContextMenu(contextMenu) // 点击通知区图标实现打开关闭应用的功能 // console.log(mainWindow.isVisible()) tray.on('click', () => { if (mainWindow.isVisible()) { mainWindow.focus() } else { mainWindow.show() mainWindow.setSkipTaskbar(true) } }) }

dialog 内容配置

import { app, BrowserWindow, dialog, Menu, nativeImage, shell, Tray } from 'electron' import { resetLocalData } from './globalShortcut' import icon from '@res/logo.png?asset' import logo from '@res/icons/128x128.png?asset' import { productName, description, author } from '@package' const isMac = process.platform === 'darwin' export async function showAboutInfo() { await dialog.showMessageBox({ type: 'info', buttons: ['关闭'], title: `关于 ${productName}`, message: `${productName} V${app.getVersion()} \n ${description} \n`, detail: `Copyright © 2023 ${author} \n${getSysBaseInfo()}`, defaultId: 0, icon: logo, // textWidth: 400, }) } function getSysBaseInfo() { let vers = process.versions return ['electron', 'chrome', 'node', 'v8'].reduce((prev, k) => { prev += `\n${k}: ${vers[k]}` return prev }, '') }
  • 大功告成,完美 ~

欢迎访问:天问博客