Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!