electron实现关闭应用隐藏到托盘

子成君 676 0

设置关闭应用时把软件隐藏到托盘

这是我一个基于vue3-vite-elementPlus-electron的项目

跟你的代码可能会有出入[aru_155],但核心思想是一样的

在主进程new BrowserWindow()之后

// 代码命名等可能会有出入 看核心逻辑即可
 this.mainWindow = new BrowserWindow({
// 你的代码
})

得到实例mainWindow,监听窗口实例的关闭事件(注意是close不是closed)[aru_158]

记得引入

 Menu, Tray, path等...
   this.mainWindow.on('close', (e) => {
      // 隐藏窗口
      e.preventDefault();
      this.mainWindow.hide();
      // 创建托盘图标
      // 当前目录下的app.ico图标
      let iconPath = path.join(__dirname, '../../../static/logo.png');  // (放你自己的路径)
      this.appTray = new Tray(iconPath)
      // 图标的上下文菜单
      const contextMenu = Menu.buildFromTemplate([{// 系统托盘图标目录
        label: '退出',
        click:  ()=> {
          app.quit();
        }
      }])
      // 隐藏主窗口
      this.mainWindow.hide();
      // 设置托盘悬浮提示
      this.appTray.setToolTip('I‘m 易齿君');
      // 设置托盘菜单
      this.appTray.setContextMenu(contextMenu);
      // 单击托盘小图标显示应用
      this.appTray.on('click', ()=>{
        // 显示主程序
        this.mainWindow.show();
        // 关闭托盘显示
        this.appTray.destroy();
      });
    })

这就是隐藏托盘的核心逻辑,记得 熟读文档[aru_58]

发表评论 取消回复
OwO 图片 链接 代码

分享