此系列文章的应用示例已发布于 GitHub: electron-api-demos-Zh_CN. 能够 Clone 或下载后运行查看. 欢迎 Star .git
使用 tray
模块容许您在操做系统的通知区域中建立图标.github
此图标还能够附加上下文菜单.windows
在浏览器中查看 完整 API 文档 .api
支持: Win, macOS, Linux | 进程: Main浏览器
示例按钮使用 ipc
模块向主进程发送消息. 在主进程中, 应用程序会被告知在托盘中放置一个带有上下文菜单的图标.app
在此示例中, 能够经过单击托盘图标上下文菜单中的 "移除" 或再次点击示例按钮来删除托盘图标.electron
主进程ui
const path = require('path') const electron = require('electron') const ipc = electron.ipcMain const app = electron.app const Menu = electron.Menu const Tray = electron.Tray let appIcon = null ipc.on('put-in-tray', function (event) { const iconName = process.platform === 'win32' ? 'windows-icon.png' : 'iconTemplate.png' const iconPath = path.join(__dirname, iconName) appIcon = new Tray(iconPath) const contextMenu = Menu.buildFromTemplate([{ label: '移除', click: function () { event.sender.send('tray-removed') } }]) appIcon.setToolTip('在托盘中的 Electron 示例.') appIcon.setContextMenu(contextMenu) }) ipc.on('remove-tray', function () { appIcon.destroy() }) app.on('window-all-closed', function () { if (appIcon) appIcon.destroy() })
渲染器进程spa
const ipc = require('electron').ipcRenderer const trayBtn = document.getElementById('put-in-tray') let trayOn = false trayBtn.addEventListener('click', function (event) { if (trayOn) { trayOn = false document.getElementById('tray-countdown').innerHTML = '' ipc.send('remove-tray') } else { trayOn = true const message = '再次点击示例按钮移除托盘.' document.getElementById('tray-countdown').innerHTML = message ipc.send('put-in-tray') } }) // 从图标上下文菜单中删除托盘 ipc.on('tray-removed', function () { ipc.send('remove-tray') trayOn = false document.getElementById('tray-countdown').innerHTML = '' })
Linux中的托盘支持.操作系统
在只有应用程序指示器支持的 Linux 发行版上,用户须要安装 libappindicator1
来使托盘图标正常工做. 有关在 Linux 上使用托盘的更多详细信息请查看 完整 API 文档 .
若是这边文章对您有帮助, 感谢 下方点赞 或 Star GitHub: electron-api-demos-Zh_CN 支持, 谢谢.