从主进程到所有渲染器进程电子的广播事件

时间:2017-05-23 06:18:53

标签: javascript node.js electron

我知道如何使用ipcRenderer.send()ipcMain.on()将事件从渲染器进程发送到主进程。我还可以使用event.sender.send()将回复发送回渲染器进程,但是如何将主进程中的事件发送到所有渲染器进程,更像是广播。

1 个答案:

答案 0 :(得分:3)

您可以创建对BrowserWindow实例的引用数组,当需要全局事件时,您可以使用发送方函数映射它,例如:

let windows = [];

let backgroundComputation = new BrowserWindow(options);
let webInteractions = new BrowserWindow(different_options);
let imageProcessing = new BrowserWindow(another_options);

windows.push(backgroundComputation)
windows.push(webInteractions)
windows.push(imageProcessing)

let sender = (message, windows) => 
        windows.map((ref) => ref.webContents.send('event_name', message))

如果你有很多这样的话,这可能会很方便。您还可以将选项alwaysOnTop:true中的标记设置为true,以使窗口位于顶部,以便任何其他窗口保持在下方。希望这有帮助!