У меня есть одно главное окно со списком всех доступных серверов с кнопкой состояния, которая имеет идентификатор сервера.Информационное окно открывается после нажатия соответствующей кнопки состояния - передача идентификатора копии информационного окна, делая кнопку статуса отключенной.Если информационное окно закрыто, информационное окно передает идентификатор в главное окно, поэтому кнопка статуса снова активируется.Для этого я использую main.js
в качестве прокси, слушаю процессы рендеринга и обмениваюсь информацией между главным окном и информационным окном.
Я пытаюсь перечислить серверы.Если они подключены к сети, получайте некоторую информацию сразу от нескольких серверов в разных процессах рендеринга (экземпляр информационного окна).
Проблема в том, что я хочу, чтобы все информационные окна были закрыты, если главное окно закрыто.
// App ready
app.on('ready', ()=>{
mainWindow = new BrowserWindow({x : 0, y : 0 , width : 500, height: 600});
mainWindow.loadURL(url.format({
pathname : path.join(__dirname, 'windows', 'mainWindow.html'),
protocol : 'file',
slashes : true
}));
// Close the app if main window closed
mainWindow.on('close', (e) => {
let openedOnes = BrowserWindow.getAllWindows();
openedOnes.forEach(wind => {
if(wind.hasOwnProperty('custom')){
wind.close();
};
});
app.quit();
});
});
При создании информационного окна я добавляю настраиваемое поле к объекту BrowserWindow
:
BrowserWindow {
_events:
{ blur: [Function],
focus: [Function],
show: [Function: visibilityChanged],
hide: [Function: visibilityChanged],
minimize: [Function: visibilityChanged],
maximize: [Function: visibilityChanged],
restore: [Function: visibilityChanged],
close: [Function: callIntoRenderer] },
_eventsCount: 8,
devToolsWebContents: [Getter],
custom: { server_id: '3' } }
Таким образом, с помощью настраиваемого поля я могу получить все открытые экземпляры информации о сервере..
Но когда я нажимаю кнопку закрытия, следующая часть выходит из строя при main.js
;
ipcMain.on('window_closed', (e, item)=>{
mainWindow.webContents.send('button_enable', item);
});
Возникает следующая ошибка.
![enter image description here](https://i.stack.imgur.com/1aLeG.jpg)
main.js:53
- это строка ipcMain.on('window_closed'...
.Кстати, если я пропущу эту строку, все будет отлично работать.