</a>
主进程(Main Process)
package.json中的main指定的脚本是主进程。主进程主要负责:
- 创建Web页面(BrowserWindow实例)并管理Web页面;
- 负责进程间通信;
- 处理系统事件;
渲染进程(Renderer Process)
每一个Web页面都运行在各自的进程中,这里的进程就是渲染进程。Electron可以在Web页面中使用Node.js APIs与底层操作系统交互,这一点非常了不起,也是Electron应用于桌面应用开发的主要价值(我可能更关注的是通过Node.js访问操作系统硬件设备的能力)。
特点:
- 渲染进程之间是隔离的;
- 每一个渲染进程只关心自己的Web页面;
- 在Web页面中不允许调用和本地GUI相关的APIs;
- 如果Web页面需要执行GUI操作,则必须由渲染进程请求主进程代为执行;
注意:在通常的浏览器中,Web页面是运行在沙箱环境中,不允许访问本地资源(应该是处于用户数据安全性考虑)。
进程间通信
显然,这里的进程间通信包含两种情形:
- 主进程和渲染进程通信:
- ipcRenderer
- ipcMain
- remote - 渲染进程之间通信:share data between web pages
应用结构
一般来说,Electron app的结构是这样的:
your-app/
├── package.json
├── main.js
└── index.html
package.json的格式与Node模块中的格式完全一样(从某种程度上看,Electron app也是一个Node模块,但是只能通过Electron执行,而不是Node执行)。
main.js则是主进程脚本。index.html就是应用的UI。
网友评论