Estoy creando una aplicación electrónica en la que estoy usando una clase para crear instancias de ventanas Renderer (necesito varias instancias del renderizador). Cada ventana del renderizador debe estar conectada a un conjunto de datos específico.
El problema es que no puedo ver una forma obvia en Electron de pasar los valores de configuración al proceso de representación cuando lo configuro en el proceso principal. Estoy usando la función createWindow y no veo ninguna forma de conectarle ninguna variable u objeto que pueda recuperarse en la precarga o en el archivo Javascript del renderizador.
¿Cómo suele manejar eso la gente?
Para ilustrar más lo que quiero hacer.
¿Cómo paso la información del conjunto de datos a la nueva ventana cuando uso el comando createWindow para crearla?
Gracias por adelantado.
Envía a cada BrowserWindow sus datos así:
// Main process. win.webContents.send('data', {'a': 'b'... });Recibe los datos así:
// Renderer process. var ipcRenderer = require('electron').ipcRenderer; ipcRenderer.on('data', function(evt, data) { console.log(data); // {'a': 'b'} });Descubrí que si creaba un renderizador y hacía que el proceso principal enviara un mensaje de inmediato, a veces el mensaje se perdía. Por lo tanto, me pareció necesario esperar primero el evento 'did-finish-load'.
//main const createWindow = (windowData) => { let win = new BrowserWindow({ show: false, }); win.loadFile(path.join(__dirname, 'index.html')) win.webContents.once('did-finish-load', () => { win.webContents.send('doThing', windowData) }) }