electron+vue——区分窗口普通关闭和强制退出
js:
import { app, BrowserWindow } from "electron";
let mainWindow = null;
...
function createWindow() {
// 创建浏览器窗口
mainWindow = new BrowserWindow({
width: 1000,
height: 600,
webPreferences: {
nodeIntegration: true, // 是否启用 Node.js 集成
contextIsolation: true, // 是否启用上下文隔离,启用时,需通过preload.js安全暴露 ipcRenderer
preload: path.join(__dirname, "preload.js"),
},
});
// 监听窗口关闭事件
mainWindow.on("close", (e) => {
e.preventDefault(); // 先阻止默认关闭行为
mainWindow.webContents.send("window-close"); // 发送事件到渲染进程
});
}
...
// 主进程准备完毕
app.on("ready", async () => {
createWindow();
// 统信系统,强制退出,不会再触发mainWindow的close事件
process.on("SIGTERM", () => {
mainWindow.destroy();
mainWindow = null;
});
});
...

浙公网安备 33010602011771号