gpt4 book ai didi

electron - 从 BrowserWindow 中的预加载脚本访问 webContents

转载 作者:行者123 更新时间:2023-12-02 21:45:21 34 4
gpt4 key购买 nike

我想从渲染进程中创建一个“Worker”BrowserWindow。工作进程将进行一些长时间运行的计算并定期返返回告。

看起来我可以使用 remote 模块在渲染器进程中执行此操作,而不是直接在主进程中创建工作浏览器窗口:

import remote from 'electron'

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

workerWindow.loadURL('file://' + __dirname + '/worker.html');

我想我可以使用 workerWindowwebContents 对象来监听如下更新:

workerWindow.webContents.on('worker-result', (event, msg) => console.log(msg));

但是我不知道如何从“preloadWorker.js”文件发出事件。我想在 preloadWorker.js 中执行此操作,

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

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

最佳答案

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

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

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

关于electron - 从 BrowserWindow 中的预加载脚本访问 webContents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422300/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com