【Electron】Electron 系统托盘图标/任务通知栏图标/右下角图标

QQ启动时,右下角会有企鹅的小图标。

使用Electron可以通过下面的方法实现这种效果

1.这是我们项目的目录结构

2.打开main.js ,目前我的main.js 是这样的:

const {app, BrowserWindow} = require('electron');  
let win;  
let windowConfig = {  
    width:800,  
    height:600  
};  
function createWindow(){  
    win = new BrowserWindow(windowConfig);  
    win.loadURL(`file://${__dirname}/index.html`);  
    //开启调试工具  
    win.webContents.openDevTools();  
    win.on('close',() => {  
        //回收BrowserWindow对象  
        win = null;  
    });  
    win.on('resize',() => {  
        win.reload();  
    })  
}  
  
app.on('ready',createWindow);  
app.on('window-all-closed',() => {  
    app.quit();  
});  
  
app.on('activate',() => {  
    if(win == null){  
        createWindow();  
    }  
})  

3.添加上应用最小化隐藏到系统托盘功能所需要的代码后是这样的:

const {app, BrowserWindow} = require('electron');  
//electron
const electron = require('electron');
const path = require('path');
//用一个 Tray 来表示一个图标,这个图标处于正在运行的系统的通知区 ,通常被添加到一个 context menu 上.
const Menu = electron.Menu;
const Tray = electron.Tray;
//托盘对象
var appTray = null;
let win;  
let windowConfig = {  
    width:800,  
    height:600  
};  
function createWindow(){  
    win = new BrowserWindow(windowConfig);  
    win.loadURL(`file://${__dirname}/index.html`);  
    //开启调试工具  
    win.webContents.openDevTools();  
	
	//系统托盘右键菜单
    var trayMenuTemplate = [
        {
            label: '设置',
            click: function () {} //打开相应页面
        },
        {
            label: '帮助',
            click: function () {}
        },
        {
            label: '关于',
            click: function () {}
        },
        {
            label: '退出',
             click: function () {
		         app.quit();
                 app.quit();//因为程序设定关闭为最小化,所以调用两次关闭,防止最大化时一次不能关闭的情况
            }
        }
    ];

    //系统托盘图标目录
    trayIcon = path.join(__dirname, 'app');//app是选取的目录

    appTray = new Tray(path.join(trayIcon, 'app.ico'));//app.ico是app目录下的ico文件

    //图标的上下文菜单
    const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);

    //设置此托盘图标的悬停提示内容
    appTray.setToolTip('我的托盘图标');

    //设置此图标的上下文菜单
    appTray.setContextMenu(contextMenu);
    //单击右下角小图标显示应用
    appTray.on('click',function(){
        win.show();
    })
	
    win.on('close',(e) => {  
        //回收BrowserWindow对象
		if(win.isMinimized()){
			win = null;
		}else{
			e.preventDefault();
			win.minimize();
		} 
    });  
    /*win.on('resize',() => {  
        win.reload();  
    })*/  
}  

app.on('ready',createWindow);  
app.on('window-all-closed',() => {  
    app.quit();  
});  
  
app.on('activate',() => {  
    if(win == null){  
        createWindow();  
    }  
})

4. 完成了
 

5.那么在接收到消息提醒后,怎么让图标闪烁呢?

    可以参考另一篇文章:【ELectron】electron应用任务栏图标闪烁提醒点击打开链接

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mickey_于浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值