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();
}
})