use*_*817 5 javascript node.js electron
我正在使用 Electron 开发桌面应用程序,场景是我有 2 个 BrowserWindow,从 FirstBrwoserWindow,单击按钮后我将转到 SecondBrowserWindow。我已经在 FirstBrwoserWindow 的按钮单击上实例化了 SecondBrowserWindow 以避免对象已被破坏异常。
根据 Electron,如果我们想在进程之间发送数据,我们必须使用 IPC。所以实际的问题从这里开始,我在 FirstBrwoserWindow 的渲染器文件中创建 SecondBrowserWindow 对象,对于 IPC,我需要在主进程中获取 SecondBrowserWindow 对象。
我如何在 main.js 中获取 SecondBrowserWindow 对象并在那里使用 IPC.???
我解决这个问题的方法是使用 ipcRenderer 将数据从第一个窗口传递到主进程,然后使用 ipcMain 将其传递到第二个窗口BrowserWindow.webContents.send()。
看起来有点像这样。
窗口1
...
// Emit an ipc message with your data
ipcRenderer('your-message', { foo: 'bar' });
...
Run Code Online (Sandbox Code Playgroud)
主要流程
...
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);
});
...
Run Code Online (Sandbox Code Playgroud)
窗口2
...
// when ipc messaged received in second window do what you want with the data
ipcRenderer.on('your-relayed-message', (event, payload) => {
console.log(payload);
});
...
Run Code Online (Sandbox Code Playgroud)