我们使用Electron的时候,经常会遇到一个问题。
问题的原因
Electron有两种进程。一种是主进程(Main),一种是渲染进程(Renderer)。
主进程就是我们package.json
里面的main值,属于Node.js后端
。渲染进程就是每个页面,比如原始的index.html
。二者之间似乎是互相隔离的,但是,Electron开发了一套两种进程互相通信的工具。那就是ipc
。
ipc分为两块,一块是ipcMain
,提供给主进程使用;另一块是ipcRenderer
,提供给渲染进程使用。两块都包含在了Electron里面,按需引入即可。
const {app,BrowserWindow,ipcMain}=require(‘electron‘);
同时在新建BrowserWindow时要加入渲染进程的node的使用。这里就不说明,自行Google。
渲染进程中,
<script>
require(‘electron‘).ipcRenderer.send("Hello World");
</script>
这时主进程就收到信息了。
ipcMain.on("Hello World",()=>{
mainWindow.close();
})
窗口成功在载入时关闭。
对于主进程给渲染进程发消息,敬请期待。