2017-06-16 2235 views
0

我正在学习在Electron中编写JavaScript。我有两个窗口。主窗口和子窗口。当主窗口关闭在Windows计算机上选择X时,我希望它关闭包括子窗口在内的整个应用程序。下面的行适用于Mac电脑。使用Electron时关闭所有应用程序窗口

mainWindow.on('closed',() => app.quit()); 

什么是做相同的事情的Windows PC的正确方法。

+0

所以你说这不适用于Windows?会发生什么呢?任何错误或其他反馈? – jonrsharpe

+0

当您在主窗口中点击X时,只有在我的文件菜单中选择退出时,子窗口才会保留 –

+0

,它是否实际关闭了两者。 –

回答

1
mainWindow.on('closed', function() { 
    child.close() 
}) 

试试这个。

+1

这实际上是一个在所有窗口关闭时都会执行的事件。问题是关于如何一次关闭所有窗口。 –

3

app.quit()是这样做的正确功能。从文档(https://github.com/electron/electron/blob/master/docs/api/app.md

尝试

报价关闭所有窗口。 before-quit事件将首先发射。如果所有窗口都成功关闭,将会发出will-quit事件,默认情况下应用程序将终止。

该方法保证所有beforeunload和卸载事件处理程序 都正确执行。有可能窗口通过在beforeunload事件处理程序中返回false来取消 戒烟。

,如果你直接关闭按钮单击该应用程序,而不是关闭该窗口,您可以纠正在Windows的行为 - >听完事件 - >和退出应用程序

const app = require('electron').remote.app; 
const close = document.getElementById('myCloseButton'); 
close.on('click',function(){ 
    app.quit(); 
}); 

这beeing说由于电子如何与Window API协同工作(可惜我现在无法在Windows上测试),窗户关闭过程仍可能失败可能。但你可以大概通过使用app.exit()解决问题。

相关问题