Recibo un error de objeto indefinido para la clave api (setScripts) en el proceso renderizado (es decir, install.js). Estoy tratando de capturar datos en el proceso renderizado y enviarlos al proceso principal (es decir, main.js) con la ayuda de preload.js.
el error-> TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'setScripts') en HTMLButtonElement. (instalar.js:10:38)
-> instalar.js
const btn = document.querySelector('#BtnInstall'); btn.addEventListener('click', (event) => { const checkboxes = document.querySelectorAll('input[name="installOption"]:checked'); const values = []; checkboxes.forEach((checkbox) => { values.push(checkbox.value); }); window.installScriptsAPI.setScripts(values); for (const checkbox of document.querySelectorAll('.checkbox1')) { checkbox.checked = false //for unselection } });-> precargar.js
const{ contextBridge, ipcRendrer} = require('electron'); contextBridge.exposeInMainWorld('installScriptsAPI',{ setScripts: (values) => ipcRendrer.send('install-scripts',values) })-> principal.js
console.log('main process working'); const { app, BrowserWindow, ipcMain } = require('electron') const path = require('path') function createWindow(){ const win = new BrowserWindow({ webPreferences :{ nodeIntegration:true, contextIsolation:false, preload: path.join(__dirname,'preload.js') }, width: 1000, height: 600 }) win.loadFile('index.html'); win.webContents.openDevTools(); } function catchInstallScripts(event,values){ console.log(values); } app.whenReady().then(() => { createWindow(); ipcMain.on('install-scripts',catchInstallScripts); }); app.commandLine.appendSwitch('disable-gpu-sandbox');