Electron 从BrowserWindow中的预加载脚本中访问WebContent

Electron 从BrowserWindow中的预加载脚本中访问WebContent,electron,Electron,我想在渲染过程中创建一个“Worker”BrowserWindow。辅助进程将执行一些长时间运行的计算并定期报告 与其直接在主进程内创建worker Browser窗口,不如使用remote模块在渲染器进程内创建worker Browser窗口: import remote from 'electron' const workerWindow = new remote.BrowserWindow({ show: false, we

我想在渲染过程中创建一个“Worker”
BrowserWindow
。辅助进程将执行一些长时间运行的计算并定期报告

与其直接在主进程内创建worker Browser窗口,不如使用
remote
模块在渲染器进程内创建worker Browser窗口:

import remote from 'electron'

        const workerWindow = new remote.BrowserWindow({
            show: false,
            webPreferences: {
                preload: path.join(__dirname, 'preloadWorker.js')
            }
        });

workerWindow.loadURL('file://' + __dirname + '/worker.html');
我想我可以使用
workerWindow
WebContent
对象来监听如下更新:

workerWindow.webContents.on('worker-result', (event, msg) => console.log(msg));
但我不知道如何从“preload worker.js”文件中发出事件。我想在
preload worker.js
中做一些这样的事情

setInterval(() =>{
    this.webContents.send('worker-result', 'hello from worker');
}, 1000);

现在我知道我可以通过使用
ipcMain
ipcmote
发送消息来完成所有这些,但我正试图为自己节省一些工作…似乎我应该能够以某种方式从
preload.js
脚本中访问
webContents

这是一个非常古老的问题,你可能不再需要它了。但是,您可以使用
ipcRenderer.sendToHost
与预加载脚本绑定到的webview通信

const { ipcRenderer } = require('electron');

setInterval(() => {
  ipcRenderer.sendToHost('worker-result', 'hello from worker');
}, 1000);