electron 主进程,和渲染进程的通信
ipcMain https://electronjs.org/docs/api/ipc-main
当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进程发送消息
ipcRenderer https://electronjs.org/docs/api/ipc-renderer
使用它提供的一些方法从渲染进程 (web 页面) 发送同步或异步的消息到主进程。 也可以接收主进程回复的消息
使用自定义的 最小化,最大化,关闭按钮
渲染进程 html 片段
<div class="mdui-row-xs-3">
<div class="mdui-col" @click="sendMinimize">
<i class="mdui-icon material-icons"></i>
</div>
<div class="mdui-col" @click="sendmMximize">
<i class="mdui-icon material-icons"></i>
</div>
<div class="mdui-col" @click="sendClose">
<i class="mdui-icon material-icons"></i>
</div>
</div>
渲染进程 js 片段
const { ipcRenderer } = require('electron');
ipcRenderer.on('index-minimize', (e, msg) => {
// 监听主进程发来的事件...
})
sendClose() {// closr
ipcRenderer.send('master-close', 'render-index')
},
sendMinimize() {// minimize
ipcRenderer.send('master-minimize', 'render-index')
},
sendmMximize() {// maximize
ipcRenderer.send('master-maximize', 'render-index')
}
主进程 js 代码片段
const {
app,// 控制应用程序寿命的模块。
BrowserWindow, // 模块创建原生浏览器窗口。
ipcMain
} = electron;
let mainWindow;
ipcMain.on('master-close', (e, msg) => {
// 关闭master进程
app.quit();
})
ipcMain.on('master-minimize', (e, msg) => {
// 最小化 master进程
mainWindow.minimize();
// 主进程向 渲染进程发送消息
// e.sender.send('index-minimize', 'master')
})
ipcMain.on('master-maximize', (e, msg) => {
// 最大化 master进程
if (mainWindow.isMaximized()) {
mainWindow.unmaximize()
} else {
mainWindow.maximize();
}
})