为什么我的Electron应用程序在关闭渲染器窗口时退出?

为什么我的Electron应用程序在关闭渲染器窗口时退出?,electron,Electron,我正在Windows上测试。 该应用程序在“就绪”上设置一个托盘菜单,并带有“关于”标签。单击时,将显示一个浏览器窗口: var aboutBox = new BrowserWindow({ width: 460, height: 176, useContentSize: true, icon: iconImg, maximizable: false, fullscreenable: false, resizable: false, minimi

我正在Windows上测试。 该应用程序在“就绪”上设置一个托盘菜单,并带有“关于”标签。单击时,将显示一个浏览器窗口:

 var aboutBox = new BrowserWindow({
        width: 460, height: 176, useContentSize: true,
        icon: iconImg,
        maximizable: false, fullscreenable: false, resizable: false, minimizable: false
    });
然后,当用户单击“确定”时,使用以下命令将其关闭:

const remote = require('electron').remote;
remote.getCurrentWindow().close();
导致应用程序退出


为什么?

在main.js中,您可以使用以下代码:

// Quit when all windows are closed.

  app.on('window-all-closed', function () {
  // On OS X it is common for applications and their menu bar  
  // to stay active until the user quits explicitly with Cmd + Q
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
因此,由于您关闭了该事件的唯一窗口,因此将发出该事件并关闭应用程序

编辑 此行为在Electron中也是默认行为,因此为了避免关闭应用程序关闭主窗口,请添加以下行:

app.on('window-all-closed', e => e.preventDefault() )

嗯,我的main.js中没有这个。这是不是像Electron内置的默认值?在哪里可以解决这个问题?