Electron
- 由Github开发的开源框架
- 允许开发者使用Web技术搭建跨平台桌面应用
- Electron架构
- Electron进程
与web开发的不同
- 主进程与渲染进程
- 主进程
1.Electron运行package.json的main脚本的进程被称为主进程
2.每个应用只要一个主进程
3.管理原生GUI,典型的窗口(BrowserWindow、Tray)
4.创建渲染进程
5.控制应用生命周期
app-管理应用生命周期,设置app本身的一些属性
BrowserWindow-管理窗口
ipcMain-和ipcRenderer进行IPC通信
Menu/Tray/MenuItem-原生GUI
- 渲染进程
1.展示web页面的进程称为渲染进程
2.通过Node.js/Electron提供的API可以跟系统底层打交道
3.一个Electron应用可以有多个渲染进程
remote-调用主进程模块
desktopCapture- 捕获系统桌面流
- 进程间通信
- 目的
通知事件
数据传输
共享数据
- IPC模块通信
Electron提供了IPC通信模块,主进程ipcMain和渲染进程的ipcRenderer
ipcMain/ipcRenderer都是EventEmitter对象
- 进程间通信:从渲染进程到主进程
1. Callback写法
ipcRenderer.send(channel,...args)
ipcMain.on(channel,handler)
2.Promise写法
ipcRenderer.invoke(channel,...args)
ipcMain.handle(channel,handler)
- 页面间通信
1.通知事件
ipcRenderer.sendTo
2.数据共享
web技术(localStroge,sessionStorage,indexedDB)
remote