es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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);
Tags:  , , , ,

Answer

  1. Avatar for 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.

Comments are closed.