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