如何在Electron渲染器窗口中将消息从一个JavaScript类/文件发送到另一个?

时间:2018-01-04 14:59:32

标签: javascript electron ipc communication

我正在创建一个电子应用程序,我的所有部分都分成不同的类(单独的文件)。我希望能够使用与ipcRender.send和ipcMain.on类似的东西与另一个人进行一次课堂谈话,但我希望在Electron渲染器中的两段代码之间进行通信。我怎么做?

我可以像mainWindow.webContents.send那样做一些愚蠢的事情,使用ipcRenderer.on在主窗口中接收消息,然后立即使用ipcRenderer.send发回相同的消息然后通过ipcMain.on接收它但看起来似乎有点疯狂

有没有办法在Electron App中发送数据,而无需通过Main?

2 个答案:

答案 0 :(得分:0)

我认为对你有用的是调用其他文件中定义的函数。

一个例子就像在文件1中那样:

exports.myFunction = function (arg1, arg2) {
    console.log(arg1);
    console.log(arg2);
};

在文件2中你会得到:

var file1 = require('./file1.js');

file1.myFunction('arg1', 'arg2');

因此,如果您要运行文件2,那么它将在文件1中调用console.log arg1arg2的函数。

你也可以用这样的变量做同样的事情:

文件1:

exports.customVar = 'placeholder';

文件2:

var file1 = require('./file1.js');

console.log(file1.customVar);

如果你要运行文件2,它将是console.log placeholder

答案 1 :(得分:0)

我发现我可以在一个类中使用ipcRenderer.emit,而在另一个类中我可以使用ipcRenderer.on来听到消息