3

我正在尝试打开一个应用程序加载程序,例如在运行应用程序时首先打开的窗口,只是为了覆盖一些正在运行的异步脚本,完成后,加载程序窗口将关闭并打开主窗口,下面是我的尝试

let mainWindow;
let win;
let loaderwin;

// CREATE WINDOW
const createMainWindow = async () => {
    win = new BrowserWindow({
        title: app.name,
        show: false,
        width: 1024,
        height: 768,
    });

    if( isdebug ) win.webContents.openDevTools();

    win.on('ready-to-show', () => {     
        win.maximize();
        win.show();
    });

    win.on('closed', () => {
        mainWindow = undefined;
    });

    await win.loadFile(path.join(__dirname, 'main-window.html'));

    return win;
}

const createLoaderWindow = async () => {
    loaderwin = new BrowserWindow({
        title: app.name,
        show: false,
        width: 600,
        height: 300,
        frame : false,
        webPreferences : {
            devTools : false
        }
    });

    loaderwin.on('ready-to-show', () => {
        loaderwin.show();
    });

    loaderwin.on('closed', () => {
        // on close open the mainwindow
        mainWindow = createMainWindow();
    });

    await loaderwin.loadFile(path.join(__dirname, 'loader.html'));

    return loaderwin;
}

// Prevent multiple instances of the app
if (!app.requestSingleInstanceLock()) {
    app.quit();
}

app.on('second-instance', () => {
    if (mainWindow) {
        if (mainWindow.isMinimized()) {
            mainWindow.restore();
        }

        mainWindow.show();
    }
});

app.on('window-all-closed', () => {
    if (!is.macos) {
        app.quit();
    }
});

app.on('activate', async () => {
    if (!mainWindow) {
        mainWindow = await createLoaderWindow();
    }
});


(async () => {
    
    await app.whenReady();

    Menu.setApplicationMenu(null);
    mainWindow = createLoaderWindow();

    await syncfunct();

    ( require('./server.js'))();

    // done, close loader window
    loaderwin.close();

})();

但它给了我这个错误

错误:ERR_FAILED (-2) 在 Object.stopLoadingListener 的 rejectAndCleanup (electron/js2c/browser_init.js:217:1457) 处加载 'file:///D:\web-development\github\tordyak-app\loader.html' (electron/js2c/browser_init.js:217:1832) 在 Object.emit (events.js:315:20) { errno: -2, code: 'ERR_FAILED', url: 'file:///D:\web -开发\github\tordyak-app\loader.html'}

非常感谢任何帮助、想法、建议。先感谢您。

4

1 回答 1

0

https://github.com/electron/electron/issues/18857

  • 检查 URL 是否正确:在 Firefox 中打开它(不是在 Chrome 中,默认情况下不允许文件 url)
  • 检查您的预加载 JavaScript 脚本是否正常
  • 检查您的窗口配置是否正常

此错误可能与各种问题有关,例如路径错误或窗口初始化期间出现错误。

于 2022-01-12T07:21:22.810 回答