博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
electron实现类似QQ来新消息时的闪烁与任务栏窗口提醒
阅读量:6358 次
发布时间:2019-06-23

本文共 1420 字,大约阅读时间需要 4 分钟。

公司项目有一款带即时聊天、群组功能的APP,因为要给客服人员使用,需要开发PC版本。之前使用C#开发过一个PC版本,但是C#的UI这一块支持的不太好,而且升级比较麻烦,我就牵头基于Electron去实现了一个PC版本。

 

遇到了客服那边提过来的需求,当有新消息过来的时候,如果聊天窗口最小化了,需要有提醒,系统托盘也要像QQ一样有新消息过来的提醒与闪烁。

 

查了一个资料,两个功能都实现了。

image

image image

 

先看任务栏的提醒样式如何实现

const path = require('path');const electron = require('electron');const {    app,    BrowserWindow,    Menu,    ipcMain,    Tray} = electron;let mainWnd = null;mainWnd = new BrowserWindow({    minWidth: 1200,    minHeight: 750,    resizable: true,    icon: 'icon.ico',    skipTaskbar: false});
// 开始或停止显示窗口来获得用户的关注mainWnd.flashFrame(true);

 

闪烁的原理就是,用定时器更换托盘图标的icon,一张正常、一张透明,切换(像眨眼睛一样)。

let appIcon = new Tray(iconPath);const contextMenu = Menu.buildFromTemplate([{    label: '移除',    click: function() {        event.sender.send('tray-removed');    }}, {    type: 'separator'}, {    label: 'Item1',    type: 'radio'}, {    type: 'separator'},{    label: 'MenuItem2',    type: 'checkbox',    checked: true}]);// Make a change to the context menucontextMenu.items[2].checked = false;appIcon.setToolTip('在托盘中的 Electron 示例.');appIcon.setContextMenu(contextMenu);var count = 0;setInterval(function() {    if (count++ % 2 == 0) {        appIcon.setImage(path.join(__dirname, '../img/tray/tray_icon_2.png'));    } else {        appIcon.setImage(path.join(__dirname, '../img/tray/tray_icon.png'));    }}, 400);

 

上面两个功能并不复杂,主要是对API方法的调用。

 

 

参考:

[1]

[2]

[3]

[4]

[5]

[6]

转载于:https://www.cnblogs.com/meteoric_cry/p/7123325.html

你可能感兴趣的文章
国家为何如此重视石墨烯?
查看>>
《Python和Pygame游戏开发指南》——1.14 配套网站上的更多信息
查看>>
利用mybatis查询两级树形菜单
查看>>
《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <一>
查看>>
Spring声明式事务管理之二:核心接口API
查看>>
LNMP环境安装(二)
查看>>
MFC对话框编程-图片控件
查看>>
nodejs启动webserver服务
查看>>
小偷被抓叫嚣:我不偷警察没饭吃
查看>>
python初学—-实现excel里面读数据进行排序
查看>>
用户体验升级后 “谁行谁上”让百度Q4财报更有底气
查看>>
直播相关学习链接
查看>>
使用RPM包工具和源码包编译安装Linux应用程序
查看>>
VoIP——开启免费通话新时代的先锋
查看>>
Linux下rsync的用法
查看>>
apache虚拟主机、日志轮询、日志统计、去版本优化
查看>>
java代码实现开启openoffice服务和关闭sffice.exe进程
查看>>
docker镜像的使用方法
查看>>
提升HTTPS安全评级
查看>>
iOS开发过程中的心得
查看>>