【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标

1.前言

在windows系统中,一般的应用都会监听不同的状态,然后给出不同的提示。比如QQ的离线状态,企鹅会变灰。当网络中断时,会一直在左右摇摆,类似于等待重连,并且后台都做了重连的操作。

基于这种情况,我们的客户端也需要做这种诊断网络异常,并且给出提示,然后重新连接。

网络重连我就不在这里说明了,这个是后台设置的机制,当网络与服务端不通时,自己尝试重连,知道重新建立链接或者说是token超时,放弃链接,让用户检查网络,重新登录。

基于此,做了如下操作

  1. 调研electron的能力,尝试实现托盘徽章,用于展示当前的网络状态或者服务器异常
  2. 当网络异常时,给出用户重连的操作提示

这里主要是讲一下托盘的徽章怎么实现。

2. Eelectron托盘徽标

2.1 windows自带的图标和徽标

使用windows的时候,很容易发现它的很多应用都有徽标,比如安全,他右下角的小徽标
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
还比如,打开安全之后的一系列东西,都是可以加徽标的。
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
于是便去调研一下如何给windows应用加上徽标,在这里 我们可以看到window提供的一下图标,仔细查看你会发现,很多图标上都自带有徽标,这也可能说明并不是在状态改变的时候,为图标追加了一个error或者alerm的徽标,而是这原本就是图标上自带的徽标。只不过是在状态改变的时候或者有告警错误来的时候去替换这张图片,换成自带徽标的图标。给人的一种感觉就是只改变了状态,徽标实时的跟着变化。

比如说这种网络错误
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标

2.2 调研antdv的徽标

在使用antdv的时候,有个Brage组件,形如
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
但是尝试的时候发现,antdv只能在渲染进程中使用,也就是说你想要图标加上徽标,那么一定要在渲染进程中进行操作。

BUT,托盘的操作是在主进程进行的,那么是没办法去实现在托盘图标上加上徽标的,所以这个就不得不放弃了。

2.3 Eelectron徽标的支持

详见这里 electron针对徽标做了支持,但是你参考着代码写出来的效果就是,它的徽标是在任务栏的图标上追加徽标,而不是托盘中。

效果点击这里,结果我直接粘贴在下面了。
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
所以,这个看起来是不合适的。

2.4 定制带徽标的图标

如果使用htmlcss,其实分分钟都可以自己定制实现一个带徽标的图标,但是没办法,在主进程中我还不知道能不能写样式,我估摸着应该可以吧,没研究过,这里也不做说明了,感兴趣的可以自己做调研。

在这里我的方案是通过软件去定义带有徽标的图标,简单的来说就是一张图片上带有一个徽标,我会根据状态定制不同的图片,然后状态发生变化时去替换对应的图片。

首选工具是美图秀秀,因为常用,而且免费。而PS过于专业,收费而且体积庞大。只是偶尔用于开发,所以选择了美图。

2.4.1 拼图

如果想要将徽标印到对应的图标上,首先需要将两张图片进行拼接。

  1. 打开美图秀秀,选择拼图-》*拼图

【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标

2. 点击纯色背景选择白色
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
3. 点击添加图片
添加两次图片,图片1是你的主图片作为图标使用,图片2是你的徽标图
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
4. 拖动图片二,缩小到图片1的合适位置
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
5. 调整图层
点击图片2,右键选择置于底层,这样就不会遮盖图片1,保证图便1的完整性
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
6. 点击下方的确定按钮
7. 点击最上面的抠图
以为我们通过美图生成的图片是自带白底色的,所以我们需要通过抠图,来去除底色
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
8. 选择自动抠图
在这个页面,可以按照左边的提示信息区修改,在主图片上划一道竖线
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
就会变成这种
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
9. 点击下面的应用效果
就可以变成无底色的图片
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
然后保存下来
【Eelectron-vue】构建桌面应用(17)-electron托盘图标的徽标
就会生成这种带有徽标的图标,然后替换到托盘中即可。不知道你们学费了没有?