electron系统托盘

简介: electron系统托盘

托盘属于系统级的操作,所以是在主进程中设置的。在开始之前需要注意的地方,设置托盘必须在程序ready之后。


image.png


托盘图标.png

上图就是设置后系统图标的显示效果。

1、引入系统托盘模块

import { Tray } from 'electron'

2、完整配置代码

//定义全局系统图标变量
let tray = null
app.on('ready', async () => {
  tray = new Tray(path.join(__dirname, '../static/log1.png'))
  const contextMenu = Menu.buildFromTemplate([
    {
      label: '退出',
      click: function () {
        app.quit()
      }
    }
  ])
  tray.setToolTip('提示语')
  //显示程序页面
  tray.on('click', () => {
    win.show()
  })
  tray.setContextMenu(contextMenu)
})

3、功能介绍

3.1左键功能

tray.setToolTip('提示语')来设置hover后出现的信息,一般也只设置hover的信息。如果当然软件是个视频软件,想让你hover时候显示正在播放的视频名称,那如何去做呢?这时候就需要把Electron的渲染进程与主进程进行通讯,将渲染进程的歌曲信息发送给主进程。

ipcRenderer.send('toolTipDesc', '我是提示语')
//定义全局系统图标变量
let tray = null
app.on('ready', async () => {
  tray = new Tray(path.join(__dirname, '../static/log1.png'))
  // 设置hover后的信息
  ipcMain.on('toolTipDesc', async (_e, data) => {
     tray.setToolTip(data)
  })
  //tray.setToolTip('提示语')
  //显示程序页面
  tray.on('click', () => {
    win.show()
  })
})
3.2右键功能

右键事件是'right-click',使用方式如下

app.on('ready', async () => {
    tray = new Tray(path.join(__dirname, '../static/log1.png'))
    tray.on('right-click', () =>{
      //menuLIst是右键显示功能列表
      tray.popUpContextMenu(menuLIst) 
    })
})

4、常见问题以及注意事项

4.1 图标出现后自动消失

出现这个原因是因为你的托盘变量定义有问题,需要在外定义一个全局的系统托盘变量,即可解决

let tray = null
4.2 图标不显示问题

tray = new Tray(path.join(__dirname, '../static/log1.png'))

注意最好不要把图标的地址放在src目录下,防止二次打包图标不显示。你可以在src同级目录下创建个static文件夹,把图标放在此文件夹下。还需要注意这个路径的写法。

相关文章
electron设置window系统托盘
electron设置window系统托盘
254 0
|
5月前
|
人工智能 缓存 自然语言处理
electron35-vue3-deepseek客户端流式输出AI对话系统
Electron35-DeepSeek桌面端AI系统|vue3.5+electron+arco客户端ai模板。2025跨平台ai实战electron35+vite6+arco仿DeepSeek/豆包ai流式打字聊天助手。
214 3
|
Shell
5.Electron之shell(使用系统默认浏览器打开网页)
5.Electron之shell(使用系统默认浏览器打开网页)
433 1
electron菜单或托盘点击如何打开新的窗口
electron菜单或托盘点击如何打开新的窗口
electron菜单或托盘点击如何打开新的窗口
|
JavaScript 前端开发 Linux
客户端开发(Electron)系统级API使用2
客户端开发(Electron)系统级API使用2
380 0
客户端开发(Electron)系统级API使用2
|
JavaScript 前端开发 Linux
客户端开发(Electron)系统级API使用
客户端开发(Electron)系统级API使用
873 0
客户端开发(Electron)系统级API使用
|
区块链 数据采集 Shell
用Electron创建跨平台应用(第三弹)开启系统通知
对于QQ这类实时通讯软件, 设置系统通知是非常常见的功能, 对于办公用的电子邮件服务, 收到新邮件进行通知也是非常必要的 Electron适用于创建跨平台应用, 对于系统通知这类常见需求, 也提供了非常好用的api 用户收到系统通知后, 往往会通过...
2256 2
|
8月前
|
人工智能 移动开发 JavaScript
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
如何用uniapp打包桌面客户端exe包,vue或者uni项目如何打包桌面客户端之electron开发-优雅草央千澈以开源蜻蜓AI工具为例子演示完整教程-开源代码附上
823 18
|
10月前
|
JSON JavaScript 前端开发
开发桌面程序-Electron入门
【10月更文挑战第16天】Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架,嵌入了 Chromium 和 Node.js。本文介绍了如何搭建 Electron 开发环境,包括安装 Node.js、创建项目、配置 main.js 和打包应用。通过简单的步骤,你可以快速创建并运行一个基本的 Electron 应用程序。
485 4
开发桌面程序-Electron入门
|
移动开发 开发框架 JavaScript
Vue3 Vite electron 开发桌面程序
Vue3 Vite electron 开发桌面程序
489 0