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

时间:2017-10-06 00:09:56

标签: electron

我在Windows上进行测试。 该应用程序设置了一个准备好的托盘菜单,其中包含一个'关于'标签。单击时,它显示BrowserWindow:

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

导致应用退出。

为什么?

1 个答案:

答案 0 :(得分:4)

在你的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关闭主窗口,请添加以下行:

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