Electron - 使用“x”按钮关闭窗口时捕获

Bir*_*rel 5 javascript node.js electron

设置

查看BrowserWindow Events Docs,该close事件是......

当窗口将要关闭时发出

事件closed是...

当窗口关闭时发出。

问题

当我手动关闭窗口(即单击菜单栏中的“x”)以及以编程方式关闭窗口(即window.close())时,这两个事件都会被触发;

该窗口需要不同的处理,具体取决于我是以编程方式关闭窗口还是手动关闭它(如果使用“x”,则完全退出应用程序,或者以其他方式执行一些操作)。

那么,我该如何...

我如何区分两者?

Moh*_*ail -1

IPC 就是为您解答的解决方案。

const {app, BrowserWindow, Menu, ipcMain} = electron;

let mainApp;

app.on('ready', () => {
  mainApp = new BrowserWindow({ frame: false });
  mainApp.loadURL(url.format({
    pathname: path.join(__dirname, 'public/mainApp2.html'),
    protocol: 'file:',
    slashes: true
  }));
  mainApp.on('closed', () => {
    app.quit();
  });
});

ipcMain.on('command:close', (event, arg) => {
  app.quit();
});
Run Code Online (Sandbox Code Playgroud)

点击后

const {ipcRenderer} = require('electron');
let $ = require("jquery");



// Click Events
$("#action-close").click(() => {
    ipcRenderer.send("command:close");
});
Run Code Online (Sandbox Code Playgroud)