Estoy tratando de abrir una ventana similar al cargador de aplicaciones que se abrirá primero al ejecutar la aplicación solo para cubrir algunos scripts asincrónicos que se ejecutan y, al finalizar, la ventana del cargador se cerrará y abrirá la ventana principal, a continuación se muestra mi intento
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(); })();pero me da este error
Error: ERR_FAILED (-2) cargando 'file:///D:\web-development\github\tordyak-app\loader.html' en rechazóAndCleanup (electron/js2c/browser_init.js:217:1457) en Object.stopLoadingListener (electron/js2c/browser_init.js:217:1832) en Object.emit (events.js:315:20) { errno: -2, código: 'ERR_FAILED', url: 'file:///D:\web -desarrollo\github\tordyak-app\loader.html' }
cualquier ayuda, ideas, sugerencias es muy apreciada. Gracias de antemano.
Consulte https://github.com/electron/electron/issues/18857
Este error puede estar relacionado con varios problemas, como tener una ruta incorrecta o tener un error durante la inicialización de la ventana.
Tuve el mismo problema y no tengo una respuesta real de por qué sucede.
Pero una solución...
Si abro una ventana oculta durante el proceso de cierre y reapertura, el electrón no se rompe.
async () => { app.off('window-all-closed', quitApp); const hiddenWin = new BrowserWindow({ useContentSize: true, show: false, }); win.close(); win = generateWindow(); hiddenWin.close(); app.once('window-all-closed', quitApp); };