-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
54 lines (43 loc) · 2.56 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const { app, BrowserWindow } = require('electron')
// Глобальная ссылка для удержания объекта окна, иначе окно автоматически закроется,
// когда JavaScript-объект утилизируется сборщиком мусора:
let win
function createWindow () {
// Создать окно браузера:
win = new BrowserWindow({ width: 800, height: 600 })
// Скрыть главное меню, т.к. у приложения будет своё меню:
win.setMenuBarVisibility(false)
// Загрузить index.html в созданное окно браузера:
win.loadFile('index.html')
// Открыть DevTools:
win.webContents.openDevTools()
// Обработчик закрытия окна браузера:
win.on('closed', () => {
// Если приложение поддерживает несколько окон, то нужно хранить их в массиве.
// Здесь же нужно удалять соответствующие элементы:
// Удаление ссылки на объект окна:
win = null
})
}
// Этот метод будет вызван после того как Electron завершит инициализацию
// и будет готов создать окна браузера
// (некоторые API могут использоваться только после того как произойдёт это событие):
app.on('ready', createWindow)
// Выйти, когда все окна закрылись:
app.on('window-all-closed', () => {
// На macOS приложение и его меню должно оставаться активным
// до тех пор пока пользователь не выйдет из приложения явно нажатием Cmd + Q:
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
// На macOS нужно пересоздавать окно приложения,
// когда нажат значок приложения на панели и нет других открытых окон:
if (win === null) {
createWindow()
}
})
// В этот файл можно включить оставшуюся часть кода приложения,
// который должен выполняться в единственном главном процессе.
// Можно также разместить его в отдельных файлах, а здесь запросить.