踩坑
打开electron,发现系统托盘的图标过一段时间后会自动消失,为了解决这个问题,我找到了系统托盘图标为何会自动消失的原因。
原因
当我们声明Tray模块中的变量时,没有将其声明为全局变量,导致在运行过程中,会被垃圾回收机制回收掉。
解决
将存储窗口/系统托盘的变量声明为全局变量,也就是在main.js中app.on('ready',fuc)
之前声明此变量。在app.on('ready',fuc)
内部去使用
代码部分:
//创建系统托盘图标
let iconTary = null
let path = require('path')
let {Tray} = require('electron')
//将iconTary声明为全局变量
let iconTary = null
app.on('ready',() => {
//将iconTary赋值Tary模块
iconTary = new Tray(path.join(__dirname,'../static/flag.png'))
})
问题解决。