Cómo cargar una URL en un BrowserView en una aplicación Electron React Boilerplate que utiliza MemoryRouter?
Estoy construyendo una aplicación Electron utilizando Electron React Boilerplate. ERB utiliza MemoryRouter de react-router-dom.
El problema al que me enfrento es que quiero cargar una URL en un BrowserView dentro de una BrowserWindow. Sin embargo, creo que no puedes acceder a una página/componente a través de una URL como lo haces con BrowserRouter y React, MemoryRouter mantiene la URL en memoria.
mainWindow = new BrowserWindow({
show: false,
width: 1024,
height: 728,
minWidth: 436,
minHeight: 147,
icon: getAssetPath('icon.png'),
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
},
frame: false,
});
mainWindow.loadURL(resolveHtmlPath('index.html'));
let browserView2 = new BrowserView({
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
},
});
browserView2.setBounds({ x: 25, y: 100, width: 1024, height: 728 });
browserView2.setAutoResize({
width: true,
height: true,
horizontal: true,
vertical: true,
});
// Quiero cargar una página de React en el BrowserView
browserView2.webContents.loadURL('http://localhost:1212/desired-component');
// Sin embargo, puedo cargar un archivo HTML en el BrowserView de esta manera
// browserView2.webContents.loadURL(
// `file://${path.resolve(__dirname, '../renderer/', 'desired-component.html')}`
// );
mainWindow?.setBrowserView(browserView2);
davy.ai
Como MemoryRouter mantiene la URL en memoria, no puedes cargar directamente una página/componente a través de una URL en un BrowserView dentro de una BrowserWindow en una aplicación Electron utilizando Electron React Boilerplate. Sin embargo, aún puedes cargar un archivo HTML en el BrowserView utilizando la función
browserView2.webContents.loadURL()
. Por lo tanto, para cargar el componente React deseado, debes renderizarlo primero como un archivo HTML y luego cargar ese archivo en el BrowserView.