电子 - 主要过程与渲染过程

时间:2017-07-29 07:45:03

标签: electron ipc

我发现很难理解如何在代码中区分主进程和渲染器。

这是我的文件结构:

file structure

我想在服务器端编写一个方法,并在前端调用它。

我应该在哪里写呢?在主要或渲染过程中?

如果我从上面的图像中在js文件夹中编写方法,是否会在主要或渲染器进程中考虑?

1 个答案:

答案 0 :(得分:0)

我假设你的main.js文件是你创建BrowserWindow的地方。这是您的主要过程,也是您编写服务器端方法的地方。

在主进程中,您可以异步或同步使用ipcMain创建方法,如下所示:

// In main process.
const {ipcMain} = require('electron');
ipcMain.on('asynchronous-message', (event, arg) => {
  console.log(arg); // prints "ping"
  event.sender.send('asynchronous-reply', 'pong');
});

ipcMain.on('synchronous-message', (event, arg) => {
  console.log(arg);  // prints "ping"
  event.returnValue = 'pong';
});

然后,您可以在渲染过程中调用此方法(在chrome实例中运行的js),如下所示:

// In renderer process (web page).
const {ipcRenderer} = require('electron');
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"

ipcRenderer.on('asynchronous-reply', (event, arg) => {
  console.log(arg); // prints "pong"
});
ipcRenderer.send('asynchronous-message', 'ping');

在上面显示的js文件夹中编写方法将是渲染过程的一部分。

希望这有帮助!