Electron系统托盘使用
前面步骤已省略
主要更改主程序main.js:
const {app, BrowserWindow, Menu, ipcMain,Tray} = require('electron') const { autoUpdater } = require('electron-updater') const path = require('path') const url = require('url') // 创建全局变量并在下面引用,避免被GC let win; function createWindow () { // 创建浏览器窗口并设置宽高 win = new BrowserWindow({ width: 460, height: 780, webPreferences: { nodeIntegration:true, contextIsolation: false, preload: path.join(__dirname, 'preload.js'), preload: path.join(__dirname, 'updata.js'),//前端js }, }) //创建托盘--并且指定图标 const tray = new Tray('logo.png') //设置托盘标题 tray.setToolTip('酉玖OA'); //创建托盘菜单 const menu= Menu.buildFromTemplate([ { label:'显示主界面', click:()=>{ //显示主窗口 win.show(); } }, { label:'退出', click:()=>{ app.quit(); } } ]) //绑定托盘菜单 tray.setContextMenu(menu); // 点击托盘图标,显示主窗口 tray.on("click", () => { win.show(); }) //双击显示主窗口 tray.on('double-click', () => { win.show(); }) //Menu.setApplicationMenu(null) // 加载页面 // win.loadFile('./index.html') win.loadURL(url.format({ pathname: path.join(__dirname, 'h5/index.html'), protocol: 'file:', slashes: true, })) // 打开开发者工具 // win.webContents.openDevTools() // 添加window关闭触发事件 win.on('closed', () => { win = null // 取消引用 }) } // 初始化后 调用函数 app.on('ready', createWindow) // 当全部窗口关闭时退出。 app.on('window-all-closed', () => { // 在 macOS 上,除非用户用 Cmd + Q 确定地退出, // 否则绝大部分应用及其菜单栏会保持激活。 if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { // 在macOS上,当单击dock图标并且没有其他窗口打开时, // 通常在应用程序中重新创建一个窗口。 if (win === null) { createWindow() } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
2022-03-03 Linux向github添加公钥
2022-03-03 vim 操作指令