^ _ ^
主进程
- Electron 运行 package.json 的 main 脚本的进程被称为主进程;
- 每个应用只有一个主进程;
- 管理原生 GUI,典型的窗口(BrowerWindow、Tray、Dock、Menu);
- 管理渲染进程;
- 控制应用生命周期(app)
渲染进程
- 展示 Web 页面的进程称为渲染进程;
- 通过 Node.js、Electron 提供的API可以和系统底层打交道;
- 一个 Electron 应用可以有多个渲染进程。
进程间通信
目的
- 通知事件
- 数据传输
- 共享数据
IPC模块通信
- Electron提供了IPC通信模块,主进程的
ipcMain和渲染进程的ipcRenderer ipcMain和ipcRenderer都是EventEmitter对象
从渲染进程到主进程
Callback写法
- ipcRenderer.send(channel, …args)
- ipcMain.on(channel, handler)
Promise写法(Electron7.0之后)
- ipcRenderer.invoke(channel, …args)
- ipcMain.handle(channel, handler)
从主进程到渲染进程
ipcRenderer.on(channel, handler)
webContent.send(channel)
渲染进程间的通信
- 通知事件
- 通过主进程转发
- ipcRenderer.sendTo
- 数据共享
- Web技术(localStorage、sessionStorage、indexedDB)
- 使用remote(不推荐)