Я сделал базовый электронный лоток, который открывает окно при нажатии одной из его опций. Я проверяю, открыл ли я BrowserWindow с помощью bool и создаю или показываю / скрываю окно.
const contextMenu = Menu.buildFromTemplate([
{ label: 'Open configuration menu', click:() => {
console.log("called createwin");
createwin();
}
И createwin это:
function createwin(){
if (windowshown == false) {
mainWindow = new BrowserWindow({
width: 1000,
height: 800,
webPreferences: {
nodeIntegration: true
}
})
console.log("Window has been created")
windowshown = true;
mainWindow.loadFile('configuration.html')
}
else {
mainWindow.show();
console.log("Window has been shown");
}
mainWindow.on('close', (event) => {
event.preventDefault();
console.log("Window has been hidden");
mainWindow.hide();
})
}
Когда я скрываю / показываю окно, которое оно создавало 4 раза, моя консоль выглядит так:
called createwin
Window has been created
window has been hidden
called createwin
Window has been shown
window has been hidden
window has been hidden
called createwin
Window has been shown
window has been hidden
window has been hidden
window has been hidden
called createwin
window has been hidden
window has been hidden
window has been hidden
window has been hidden
после четвертого раза он просто перестает отвечать. Я даже не могу сделать
mainWindow.removeAllListeners('close');
mainWindow.close()
mainWindow = null
app.quit();
Моя проблема в том, что мое приложение полностью перестает отвечать на запросы после того, как окно скрыто в четвертый раз.
Обновление: приложение перестает отвечать на запросы после скрытия окна, если я начинаю с npm start
вместо отладчика кода Visual Studio.
Что мне здесь не хватает?