windows/mac
下开机自启,electron
官方已经实现。文档地址
linux
下自启。
下载插件
代码语言:javascript复制npm install easy-auto-launch -S
创建auto-launch.ts
文件,写入内容
import AutoLaunch from "easy-auto-launch";
import {app} from "electron";
/**
* 获取开机启动状态
*/
export const getAutoLaunchState = async () => {
if (process.platform === "linux") {
const autoLauncher = new AutoLaunch({
name: app.getName(),
isHidden: false,
path: process.env.APPIMAGE
});
return await autoLauncher.isEnabled();
}
return app.getLoginItemSettings().openAtLogin;
}
/**
* 更新开机启动
* @param isAutoLaunchEnabled
*/
export const updateAutoLaunch = async (isAutoLaunchEnabled: boolean = true) => {
const electronIsDev = !app.isPackaged;
// Don't run this in development
if (electronIsDev) {
return;
}
// `setLoginItemSettings` doesn't support linux
if (process.platform === "linux") {
const autoLauncher = new AutoLaunch({
name: app.getName(),
isHidden: false,
path: process.env.APPIMAGE
});
if (isAutoLaunchEnabled) {
await autoLauncher.enable();
} else {
await autoLauncher.disable();
}
return;
}
app.setLoginItemSettings({
openAtLogin: isAutoLaunchEnabled,
openAsHidden: true,
});
}
在主进程main中调用就好了。
代码语言:javascript复制 app.whenReady().then(async () => {
// enable auto launch
await updateAutoLaunch();
await createWindow()
});