electron程序,如何闪动任务栏图标以引起用户注意?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔在本文中对任务栏图标闪动的情况进行总结,在mac
系统下,这个效果是相当不错的。当electron
程序完成了一些操作之后,需要提醒用户操作完成了,就可以使用本文中的electron
相关函数,来对用户进行提示。
本文测试环境:mac
、electron5.0.7
。
激活窗体
代码如下:
mainWindow.showInactive();
如果electron
当前的主窗体mainWindow
,并处于未激活(最小化)状态。那么,这个代码就可以主动激活聚焦到主窗体。否则的话,啥作用也木有,可以完全忽视。
图标跳跃/闪动
代码如下:
mainWindow.flashFrame(true);
这个代码flashFrame(true)
生效的前提也是:
mac
:主窗体mainWindow
并不是在激活状态,就是说在最小化状态。win10
中,不要求窗体最小化,两者并不影响。
表现样式:
- 在
win10
下,表现形式是:任务栏上面的对应任务在不断闪动。 - 在
mac
上,表现样式是:dock
上对应的图标,会上下跳动一次。
相关链接:
https://newsn.net/say/electron-flash-frame.html
图标跳跃(下载图标)
效果是:mac
系统下,底部dock
的右侧下载图标,会自动跳跃一次。
// const { app,BrowserWindow } = require('electron')
// app.dock.downloadFinished(item.getSavePath());
const filePath = path.join(app.getPath('downloads'), "123.zip");
app.dock.downloadFinished(filePath);
特性:mac
专有
app.dock
是mac
系统独有的,所以这个代码在非mac
系统上,是会报错的。所以,可以稍稍改进一下:
if (process.platform == 'darwin') {
//app.dock.downloadFinished("/Users/sunan/Downloads/1.jpg");
const filePath = path.join(app.getPath('downloads'), "123.zip");
app.dock.downloadFinished(filePath);
}
要求1:dock
中存在"下载"图标
在mac
系统上的时候,需要dock
栏中,有下载
这个特殊的icon
。如果没有的话,需要从访达的左侧菜单中,给拖拽到dock
下来。具体见下图:
要求2:代码传入下载目录的路径
const filePath = path.join(app.getPath('downloads'), "123.zip");
app.dock.downloadFinished(filePath)
filePath
必须包含有下载目录的路径字符串,才算是个合格的参数。并且,如果最终的文件,比如:123.zip
实际上并不存在的话,也是没有问题的。所以,这里特别案例一个获取系统下载目录路径的函数:
app.getPath('downloads')
相关链接:
总结
本文中,苏南大叔主要讲述electron
程序,引起用户注意,进行下一步操作的几个可能性代码操作。当然,哪个操作适合您,还请根据实际情况选用。
更多electron
相关经验文字,请点击苏南大叔的博客:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
您好博主,设置-webkit-app-region:drag拖动;鼠标点击右键会出现系统默认菜单:还原、移动、最小化、最大化、大小、关闭等;请问有什么方法可以让系统默认菜单隐藏不?
不用`-webkit-app-region:drag`,有个叫electron-drag的包,你可以试试