electron程序,如何设置加入开机启动项?
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔在以前的文章中,案例过一款第三方代码node-auto-launch
,功用就是控制electron
或者nwjs
加入开启启动项,相关链接见文末。
在本文中,苏南大叔将要介绍的功能是针对electron
的。electron程序,如何设置加入开机启动项呢? electron
官方提供的相关代码功能,并不需要安装第三方代码库。这个就有些厉害了不是?毕竟很多人都有这个electron
加入开机启动项的需求。
本文测试环境:mac
、win10
、electron@5.0.7
。需要特殊说明的是,在苏南大叔的测试中,在win10
下面,是可以比较完美实现这个功能的。而对于mac
系统,对于开发非打包状态下的electron
程序,开机呈现的并不是大家想要的。这一点是和伪协议唤起electron
时的问题,是同出一辙的。
核心代码
electron
加入开机启动项的核心最简化代码是:
app.setLoginItemSettings();
这个代码仅仅支持macos
和windows
,其官方描述是:
其函数原型为:app.setLoginItemSettings(settings)
settings
是个Object
类型,其key
有:
openAtLogin
Boolean (可选) - true在登录时启动应用,false 移除应用作为登录启动项 。默认为 false.openAsHidden
Boolean (可选) macOS - true 表示以隐藏的方式启动应用。 默认为false。 用户可以从系统首选项中编辑此设置, 以便在打开应用程序时检查 app.getLoginItemSettings().wasOpenedAsHidden 以了解当前值。 该配置在 MAS 构建 时不可用。path
String (可选) Windows - 在登录时启动的可执行文件。默认为 process.execPath.args
String Windows - 要传递给可执行文件的命令行参数。默认为空数组。注意用引号将路径换行。
扩展代码
结合在伪协议调用时的相关经验,苏南大叔自己完善了一下相关代码,根据app.isPackaged
对代码进行了区分。可以解决window
下,electron
程序的开发调试时,开机启动功能调试的问题。仅供参考,如果大家有更好的解决方案,请留言给苏南大叔。谢谢。
相关效果
在win10
下面测试的时候,可以看到,相关的代码会写入注册表。当然,第二次执行相关代码的时候,并不会触发数字公司的产品拦截。而在mac
下面测试的时候,没有任何的权限提示,直接加入开机启动项成功。
相关链接
设置开机启动:
查询开机启动状态:
auto-launch如何使用:
总结
对于electron
开发人员来说,这个setLoginItemSettings
无疑是非常好的选择。马上试试吧。更多苏南大叔的electron
相关博客文章,请点击:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
可见内容
Error launching app 启动应用程序出错?请问博主我这个是路径问题不?
不晓得,不过除了路径问题,也没有别的可能性了吧?