问题描述
第一次使用离子电容器+电子在电子桌面应用程序上工作,我在自动启动系统托盘功能时遇到问题。我需要的是在系统启动时自动启动应用程序,例如系统托盘中的Slack或Skype,而不是窗口。
我尝试了自动启动程序包,但是即使将属性设置为“ isHidden:true”,启动后仍会显示该窗口。
//Adding auto-launch feature
let autoLaunch = new AutoLaunch({
name: 'App',path: app.getPath('exe'),isHidden: true
});
autoLaunch.enable();
autoLaunch.isEnabled()
.then(function(isEnabled){
if(isEnabled){
return;
}
autoLaunch.enable();
})
.catch(function(err){
// handle error
});
然后,我将自动启动包含在app.setLoginItemSettings中,而不是openAsHidden属性,该属性也不起作用,并且在系统启动时显示该窗口:
app.setLoginItemSettings({
openAtLogin: true,path: updateExe,openAsHidden : true,args: [
'--processStart',`"${exeName}"`,'--process-start-args',`"--hidden"`
]
})
然后我将show()替换为hide(),而在dom就绪时将其启动时将应用程序推送到系统托盘,但是现在的问题是,单击应用程序文件后其隐藏了,我只能通过系统托盘打开它。我正在寻找一种解决方案,该解决方案将在单击应用程序文件后打开该应用程序,但是在启动时它将自动启动到系统托盘。与Slack或Skype应用类似。
mainWindow.webContents.on('dom-ready',() => {
mainWindow.show(); // replaced with mainWindow.hide()
});
我使用电子打包程序生成了应用文件。
Windows版本:Windows 10
更新 理解app.setLoginItemSettings的openAsHidden属性仅适用于MAC。那么,如何在Windows上隐藏诸如Slack启动之类的电子应用程序呢?他们使用哪种方法?还是有一种方法可以确定应用程序是由系统启动还是由用户打开的,因此可以将dom-ready事件相应地用于windows.hide()和windows.show()。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)