electron开机自启

2023-04-27 15:05:17 浏览数 (1)

windows/mac下开机自启,electron官方已经实现。文档地址

linux下自启。

下载插件

代码语言:javascript复制
npm install easy-auto-launch -S

创建auto-launch.ts文件,写入内容

代码语言:javascript复制
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()
 });

0 人点赞