Учебник по Electron.js

Управление окном приложения

Создать окно позволяет класс BrowserWindow из пакета electron. Формат конструктора:

<Объект окна> = new BrowserWindow(<Объект с опциями>)

Обратите внимание: окно можно создать только в процессе Main.

Создание и отображение окна

В параметре <Объект с опциями> можно указать следующие опции:

Управлять отображением и сокрытием окна позволяют следующие методы:

Загрузить Web-страницу в окно позволяют следующие методы:

win.loadFile('index.htm').then(() => {
   console.log('loadFile OK');
}).catch((e) => {
   console.log(e);
});
let url = require('url').format({
   protocol: 'file',
   slashes: true,
   pathname: require('path').join(__dirname, 'index.html')
});
win.loadURL(url).then(() => {
   console.log('loadURL OK');
}).catch((e) => {
   console.log(e);
});

Перечислим основные события:

win.on('page-title-updated', (e, title, exp) => {
   e.preventDefault();
});

Отобразим окно внутри обработчика события ready-to-show:

let win = new BrowserWindow({
   title: 'Заголовок окна',
   show: false
});
win.on('ready-to-show', () => {
   win.show();
});
win.loadFile('index.html');

Получить ссылки на окна позволяют следующие статические методы из класса BrowserWindow:

app.on('activate', () => { // Для MacOS
   if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
   }
});

fromWebContents(<webContents>) — возвращает ссылку на окно, соответствующее объекту webContents, или значение null:

console.log(BrowserWindow.fromWebContents(win.webContents));

fromId(<id>) — возвращает ссылку на окно, соответствующее идентификатору <id>, или значение null:

console.log(BrowserWindow.fromId(win.id));