电子 - 我的应用程序可以与主要和渲染器进程通信吗?

时间:2017-05-09 00:56:05

标签: electron

我写了一个非常非常基本的电子应用程序 - 标准的hello world类型,你基本上有一个HTML文件,上面写着" Hello,World" - 并且它存在于" app"电子中的目录,然后在运行应用程序时通过main.js加载。

现在,让我说我希望能够与我的应用程序中的javascript中的任何一个进程(主要或渲染器,最好是两个!)进行通信,可以这样做吗?我无法在网上找到任何关于它的信息 - 但我的主要问题可能是我甚至不知道首先要搜索什么。我是Electron的新手。

1 个答案:

答案 0 :(得分:5)

我想你在谈论主要流程和其他浏览器窗口。

您可以使用BrowserWindow.webContents.send(channel[, arg1][, arg2][, ...])将消息从主进程发送到浏览器窗口,然后使用ipcRenderer接收消息。举个例子:

主要流程:

subWindow.webContents.send("foo","bar");

名为BrowserWindow的{​​{1}}:

subWindow

如果要将数据从浏览器窗口发送到主进程,请使用var ipc=require("electron").ipcRenderer; ipc.on("foo",(event, arg1) => { console.log(arg1); //Outputs "bar" }); 。使用remote.app.emit接收它。同样的例子:

主要流程:

app.on

子窗口:

var app=require("electron").app;
app.on("test",(arg) => {
    if (arg=="hey!") console.log("ha!");
}