主进程与渲染进程通信
因为主进程和渲染进程分担不同的工作,因此项目中遇到主进程和渲染进程之间进行一些操作是很常见的
渲染进程
javascript
import { ipcRenderer } from "electron";
// 监听渲染进程方法
ipcRenderer.send("window-close");
主进程
javascript
import { app, BrowserWindow, ipcMain } from "electron";
// 监听渲染进程方法
ipcMain.on("window-close", (e, data) => {
win.close();
});
contextBridge
为了安全考虑,建议在 preload 封装 contextBridge.exposeInMainWorld 暴露给渲染进程上下文的方法 preload.js
javascript
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("electronAPI", {
setWindowClose: () => ipcRenderer.send("window-close"),
});
渲染进程上下文
javascript
window.electronAPI.setWindowClose();