Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
¿Cómo usar la función webContents.send de electron.js en otro archivo de renderizado ipc?

Estoy tratando de separar la función IPC del archivo main.js en electron porque se vuelve demasiado largo

¿Cómo puedo usar este webContents.send en un archivo js diferente que no está en main.js?

 mainWindow.webContents.send("search",recordset.recordset)

muestra este error No se pueden leer las propiedades de undefined (leyendo 'webContents')

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La separación de preocupaciones será su prioridad número uno aquí. Para lograr esto, puede usar setters y getters .

Recuerde, cuando Node require por primera vez un módulo, también se almacena en caché. Usemos esta ventaja como una forma de gestión estatal.


Antes de separar/refactorizar su código, encontrará que su archivo main.js puede crecer hasta un tamaño enorme. El uso de técnicas como esta le permitirá dividir su código en segmentos de código de responsabilidad única fácilmente manejables y legibles.

Si aún no lo ha hecho, saquemos la construcción de su ventana principal del archivo mainWindow y la main.js en su propio archivo.

main.js (hilo principal)

 // Import the necessary Electron modules. const electronApp = require('electron').app; const electronBrowserWindow = require('electron').BrowserWindow; // Import the necessary Node modules. const nodePath = require('path'); // Import the necessary Application modules. const appMainWindow = require(nodePath.join(__dirname, 'main-window')); // Prevent garbage collection. let mainWindow = null; // Application is now ready to start. electronApp.on('ready', () => { mainWindow = appMainWindow.create(); }); // Re-activate Application when in macOS dock. electronApp.on('activate', () => { if (electronBrowserWindow.getAllWindows().length === 0) { appMainWindow.create(mainWindow); } }); // Close Application completely if not on macOS. electronApp.on('window-all-closed', () => { if (process.platform !== 'darwin') { electronApp.quit(); } });

Tener la administración del objeto mainWindow en su propio archivo separa nuestro código en fragmentos más legibles y manejables.

main-window.js (hilo principal)

 // Import the necessary Electron modules. const electronBrowserWindow = require('electron').BrowserWindow; // Define the main window. let mainWindow; // Create the main window. function create() { mainWindow = new electronBrowserWindow({ x: 0, y: 0, width: 800, height: 600, show: false, webPreferences: { nodeIntegration: false, contextIsolation: true, preload: nodePath.join(__dirname, 'preload.js') } }); // Load the main window. mainWindow.loadFile(nodePath.join(__dirname, 'main-window.html')) .then(() => { mainWindow.show(); }) return mainWindow; } // Get the main window object. function get() { return mainWindow; } // Export the publicly available functions. module.exports = {create, get};

Finalmente, en su archivo (o cualquier otro archivo) que requiera una referencia a su objeto mainWindow , solo require su archivo main-window.js y llame a la función get() .

any-file (hilo principal)

 // Import the necessary Node modules. const nodePath = require('path'); // Import the necessary Application modules. const appMainWindow = require(nodePath.join(__dirname, 'main-window')); // Lets use it. appMainWindow.get().webContents.send("search", recordset.recordset);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda