electron程序,如何设置加入开机启动项呢?
electron官方提供的相关代码功能,并不需要安装第三方代码库。相信很多人在开发electron应用程序的时候都会有这个需求
本文测试环境 mac、win10、electron@28.0.0,并在软件打包后支持软件自启动。
核心代码
electron加入开机启动项的核心最简化代码是:
app.setLoginItemSettings();
这个代码仅仅支持macos和windows,其官方描述是:
其函数原型为:app.setLoginItemSettings(settings)
settings是个Object类型,其key有:
openAtLoginboolean (可选) -true登录时打开应用程序,false将应用从登录启动项中删除。 默认值为false.openAsHiddenboolean (可选) macOS -true以隐藏方式打开应用程序。 默认为false。 用户可以从系统首选项中编辑此设置, 以便在打开应用程序时检查app.getLoginItemSettings().wasOpenedAsHidden以了解当前值。 此设置在 MAS builds 上不可用pathstring (可选) Windows - 登录时运行的可执行文件。 默认为process.execPath。argsstring[] (可选) Windows - 传递给可执行文件的控制台参数。 默认为空数组。 注意用引号包裹路径。enabledboolean (可选) Windows -true将更改已启用的启动注册表项,并在任务管理器和 Windows 设置中启用 / 禁用应用程序。 默认值为true。namestring (可选) Windows - 要写入注册表的值名称。 默认为应用的 AppUserModelId()。 设置应用程序的登录项设置。
线上使用
if (app.isPackaged) {
const ex = process.execPath;
app.setLoginItemSettings({
openAtLogin: true,
path: ex,
args: [],
});
}
mac在打包后运行会提示添加到启动项,windows默认没有感知,可以在任务管理中查看启动项
最后
如果想要扩展到 linux 平台,或者出现设备不兼容的情况,可以尝试使用 node-auto-launch