javascript - 我需要使用 app.quit() 关闭所有窗口,但它不起作用,因为某些窗口被隐藏了
问题描述
我有一个简单的应用程序,它只有两个窗口,它们从不同时出现,但一直在工作,只是其中一个被隐藏了。我一直在尝试使用该app.quit()
方法关闭它们,但它不起作用,我关闭的窗口停止运行,但终端中的进程将继续,因为另一个窗口正在运行。我该如何解决这个问题?
这是代码
const app = electron.app
const { ipcMain } = require('electron')
var path = require('path')
const BrowserWindow = electron.BrowserWindow
//when app ready it will create the window
app.on('ready', function () {
//create the first window
let loginWindow = new BrowserWindow({
[...]
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
enableRemoteModule: true
}
})
loginWindow.once('ready-to-show', function () {
loginWindow.show()
})
//create the forgotten password window
let forgotPasswordWindow = new BrowserWindow({
[...]
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true,
enableRemoteModule: true
}
})
forgotPasswordWindow.once('ready-to-show', function () {
forgotPasswordWindow.hide()
})
ipcMain.on('forgotpassword-from-login', function () {
forgotPasswordWindow.show(loginWindow.hide())
})
ipcMain.on('login-from-forgotpassword', function () {
forgotPasswordWindow.hide(loginWindow.show())
})
});
app.on('window-all-closed', () => {
if (forgotPasswordWindow.closed === true && loginWindow.show === false) {
app.quit()
}
else if (loginWindow.closed === true && forgotPasswordWindow.show === false) {
app.quit()
}
})
最后的一段代码只是我的尝试,考虑到我是一个完全的初学者。
已经感谢您的任何回答!
解决方案
好的,感谢Halmon的回答,我得到了简单的解决方案,我将两个窗口上的关闭按钮设置为在按下时关闭它们,所以现在app.quit()
可以正常工作了。
代码现在看起来就像以前一样,我刚刚添加了一个ipcMain
关闭窗口的函数,如下所示:
ipcMain.on('close-all-windows', function() {
forgotPasswordWindow.close(loginWindow.close())
})
最后,最后一个app.on
函数如下所示:
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
感谢大家的帮助
推荐阅读
- jsonpath - 根值的 JSON 路径字符串评估
- spring - 带有帖子的 Spring WebMvcTest 返回 403
- angular - Ionic 3 Firebase Angular 本地存储
- css - Badge-pill 和 h2 水平对齐
- vue-resource - Vue-Resource:如何从 JSON 获取和显示多个数组
- android - 无法为飞溅的 android 播放此视频
- php - PHP 数组:需要的输出
- javascript - Javascript - 将对象指向鼠标
- python - 如何通过变量名导入模块以及如何命名所述模块
- visual-studio - Visual Studio,将文件复制到项目目录问题