首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用电子方式将数据从渲染过程发送到渲染过程

用电子方式将数据从渲染过程发送到渲染过程
EN

Stack Overflow用户
提问于 2017-12-15 13:05:47
回答 2查看 7.4K关注 0票数 4

我正在开发的桌面应用程序使用电子,场景是我有2 BrowserWindow,从FirstBrwoserWindow,我要去SecondBrowserWindow后,按钮单击。我已经实例化了SecondBrowserWindow,在FirstBrwoserWindow的按钮单击以避免对象已被销毁异常。

按照电子的说法,如果我们想在进程之间发送数据,我们必须使用IPC。因此,实际问题从这里开始,我在FirstBrwoserWindow的呈现器文件中创建SecondBrowserWindow对象,对于IPC,我需要在主进程中获取SecondBrowserWindow对象。

如何在main.js中获取main.js对象并在那里使用IPC.on?

EN

回答 2

Stack Overflow用户

发布于 2017-12-15 13:29:16

我解决这一问题的方法是使用ipcRenderer将数据从第一个窗口传递到主进程,然后使用ipcMain使用BrowserWindow.webContents.send()将数据传递给第二个窗口。

看上去有点像这样。

窗口1

代码语言:javascript
复制
...
// Emit an ipc message with your data
ipcRenderer('your-message', { foo: 'bar' });
...

主进程

代码语言:javascript
复制
...
let window1 = new BrowserWindow(...);
let window2 = new BrowserWindow(...);
...
// when ipc message received pass it on to second window object with webContents
ipcMain.on('your-message', (event, payload) => {
  window2.webContents.send('your-relayed-message', payload);
});
...

窗口2

代码语言:javascript
复制
...
// when ipc messaged received in second window do what you want with the data
ipcRenderer.on('your-relayed-message', (event, payload) => {
  console.log(payload);
});
...
票数 3
EN

Stack Overflow用户

发布于 2017-12-15 13:52:29

你可以用更多的方式做这件事,但我建议你:

1)当您收到在渲染器中打开第二个BrowserWindow的输入时,向main.js发送一条消息

2) from main.js,打开第二个BrowserWindow,这样您就可以控制它并以更干净的方式向它发送消息。

通过这种方式,您可以在没有通信错误的情况下关闭前面的BrowserWindow,并且您有一个更可伸缩的可读的N BrowserWindows 逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47833017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档