window平台上,很多程序逻辑,都喜欢改写窗体关闭事件,更改为最小化到系统托盘的功能。而在mac系统中,系统默认会对所有的程序,都改写窗体关闭事件,区别就是不会自动添加系统托盘功能。那么,如何实现这种程序关闭功能改写呢?请阅读苏南大叔带来的本篇经验文字。

苏南大叔:electron程序,如何实现改写关闭事件为最小化到托盘? - electron-tray-min
electron程序,如何实现改写关闭事件为最小化到托盘?(图3-1)

本文测试环境:win10/electron@5.0.7。本篇文章的测试环境是win10,在centos或者mac下面,只能说部分代码会适用,肯定有需要特殊处理的的地方。这些需要特殊处理的地方,就暂时不在本文讨论范围内了。本文的需求,大家可以想象成:关闭qq的主面板,然后窗体会缩小到托盘里面,点击托盘之后,还会显示主窗体。

任务栏不显示(选项)

一般来说,这类窗体有一定的概率是不需要在任务栏显示的。所以,在窗体初始化的时候,可以根据情况加入属性控制代码:

skipTaskbar:true

例如:

mainWindow = new BrowserWindow({
  //...
  skipTaskbar:true
})

特殊说明

在更进一步的需求中,托盘的显示与否都是有条件的。比如主窗体显示的时候,托盘消失。主窗体隐藏的时候,托盘显示。这个就需要个tray.destory()。但是,在实际的测试中,只要执行tray.destory(),主程序就会崩溃。所以,暂时在需求中,就咩有托盘的显示和隐藏的需求了。比如,以qq为例的话,qq也是时刻都有托盘图标的。

总结

没给出最终代码,不过关键点都写出来了。一是苏南大叔觉得代码还是不够完美,另外就是,代码相关链接都写出来了嘛,点击进去看看?大家也都不要做伸手党嘛。

点击一下下面的链接,查看更多苏南大叔的electron相关博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron    tray

本站的忠实读者小伙伴,正在阅读下面这些文章: