# 1
在桌面软件中,开机自启动是很常见的功能,在electron中也提供了很好的支持,以下是主要代码:
//应用是否打包if (app.isPackaged) { //设置开机启动 app.setLoginItemSettings({ openAtLogin: true });}//应用是否打包if (app.isPackaged) { //获取是否开机启动 const { openAtLogin } = app.getLoginItemSettings(); return openAtLogin;}
设置开机启动后,如果不稍加处理,用户一开电脑,就会弹出你的软件窗口,这样不太友好。正常来说某些软件只有用户手动打开软件时才弹出主窗口,开机启动的话,只收起到系统托盘中会更好一些。
# 2
参考electron开机启动相关文档:appsetloginitemsettingssettings-macos-windows
windows
在windows下,setLoginItemSettings
方法有一个args
参数,利用这个参数就可以达到目的,以下是主要代码:
//设置开机启动app.setLoginItemSettings({ openAtLogin: true, args: ["--openAsHidden"],});//获取是否开机启动const { openAtLogin } = app.getLoginItemSettings({ args: ["--openAsHidden"],});return openAtLogin;
设置开机启动时,在args
中传入--openAsHidden
,这个字符串可以随便更改。获取开机启动时,也要在args
中传入同样的字符串,不然获取不到正确的值。
然后在显示主窗口时,先判断一下process.argv
中是否包含--openAsHidden
,如果包含,说明是开机自动启动的,这时候不显示窗口;相反 如果不包含--openAsHidden
的话,说明是用户手动启动软件,这时正常显示窗口就好了:
win.once("ready-to-show", () => { if (process.argv.indexOf("--openAsHidden") < 0) win.show();});
macOS
mac下没有args
参数,可以通过openAsHidden
来实现。以下是主要代码:
//设置开机启动app.setLoginItemSettings({ openAtLogin: true, openAsHidden: true,});//获取是否开机启动const { openAtLogin } = app.getLoginItemSettings();return openAtLogin;
光设置openAsHidden: true
还不行,也需要做一下判断:
win.once("ready-to-show", () => { if (!app.getLoginItemSettings().wasOpenedAsHidden) win.show();});
# 3
以上就是我正在使用的Electron开机启动时隐藏主窗口的方法,显示系统托盘就用Tray
就行,比较简单。如有其他更好的方式,欢迎交流。。。
原文转载:http://www.shaoqun.com/a/512314.html
easy buy:https://www.ikjzd.com/w/2162
雨果:https://www.ikjzd.com/w/1307
#1在桌面软件中,开机自启动是很常见的功能,在electron中也提供了很好的支持,以下是主要代码://应用是否打包if(app.isPackaged){//设置开机启动app.setLoginItemSettings({openAtLogin:true});}//应用是否打包if(app.isPackaged){//获取是否开机启动const{openAtLogin}=app.getLoginI
邮乐网购:邮乐网购
google趋势:google趋势
跨境电商无货源为何热议不止,褒贬不一?:跨境电商无货源为何热议不止,褒贬不一?
5种亚马逊广告运营技巧!:5种亚马逊广告运营技巧!
海南香水湾要门票吗?:海南香水湾要门票吗?
没有评论:
发表评论