๐ป app ๋ชจ๋
Main Process
์ ๋ค์๊ณผ ๊ฐ์ด ์ํฌํธํด์ ์ฌ์ฉ๊ฐ๋ฅ ํ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค.
1
const { app } = require("electron");
Node.js์ Event Emitter๋ฅผ ์์๋ฐ์๊ธฐ ๋๋ฌธ์ ์ด๋ฒคํธ๋ค์ ์์ ํด ์ ์ ํ ๋ก์ง์ ์คํํ ์ ์์ต๋๋ค. app
๋ชจ๋์์ ์์ ํ๋ ์ด๋ฒคํธ์ ํจ์๋ค ๋ช๊ฐ์ง๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
๐ป ready
1
2
3
app.on("ready", (event, lauchInfo) => {
//
});
์ผ๋ ํธ๋ก ์ ์ด๊ธฐํ๊ฐ ์๋ฃ ๋์์ ๋, ๋ฑ ํ๋ฒ ์คํ๋๋ ์๋ช
์ฃผ๊ธฐ ์
๋๋ค. ๋๋ถ๋ถ์ ์ผ๋ ํธ๋ก ๋ก์ง์ ์ด ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ ๋ ํ ์คํ๋๊ฒ๋ ์์ฑ๋ฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์คํ ํ๊ฒฝ์ด macOS
๋ผ๋ฉด launchInfo
์ธ์๋ฅผ ๋ฐ์์ฌ ์ ์์ผ๋ฉฐ, ์๋ฆผ ์ผํฐ๋ฅผ ํตํด ์คํํ์ ๊ฒฝ์ฐ ํด๋น ์ธ์๊ฐ ๋์ด์ค๊ฒ ๋ฉ๋๋ค.
์ ์ด๋ฒคํธ์ ๊ด๋ จ๋์ด ์๋ ํจ์ ๋๊ฐ์ง๋ฅผ ์๊ฐํ๊ฒ ์ต๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
// "ready" ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ ๋์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธ
app.isReady();
// "ready" ์ด๋ฒคํธ๊ฐ ํธ๋ฆฌ๊ฑฐ ๋์์ ๋ promise๋ฅผ ๋ฐํ
/**
* .on("ready", () => {}) ์ ๊ฐ์ ์ญํ ์ด์ง๋ง
* ์ ํจ์๋ฅผ ์ฌ์ฉํ์ ๋, ๋ฐ์ํ ์ ์๋ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ค์ผ ์ ์์
* https://github.com/electron/electron/pull/21972
*/
app.whenReady().then(() => {
//
});
๐ป before-quit
1
2
3
app.on("before-quit", (event) => {
//
});
์ ํ๋ฆฌ์ผ์ด์
์ด ์ข
๋ฃ๋๊ธฐ ์ง์ ์ ํธ๋ฆฌ๊ฑฐ๋๋ ์ด๋ฒคํธ์
๋๋ค. e.preventDefault()
๋ฅผ ์ถ๊ฐํ ํ ์ข
๋ฃ๋ฅผ ํ๊ฒ ๋๋ฉด, ์ด๋ฒคํธ๋ ํธ๋ฆฌ๊ฑฐ๋์ง๋ง ์ ํ๋ฆฌ์ผ์ด์
์ ์ข
๋ฃ๋์ง ์์ต๋๋ค.
๐ป browser-window-blur
1
2
3
4
5
app.on("browser-window-blur", (event, window) => {
setTimeout(() => {
app.quit();
}, 3000);
});
browserWindow
๊ฐ blur ์ฆ ํฌ์ปค์ค๋ฅผ ์์์ ๋, ํธ๋ฆฌ๊ฑฐ๋๋ ์ด๋ฒคํธ ์
๋๋ค. ์ ๋ก์ง์ browserWindow
์ ํฌ์ปค์ค๊ฐ ์ฌ๋ผ์ง ํ, 3์ด ํ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ข
๋ฃ๋๋๋ก ํ๋ ๋ก์ง์
๋๋ค.
๐ป browser-window-focus
1
2
3
app.on("browser-window-focus", (event, window) => {
//
});
browser-window-blur
์ ๋ฐ๋์ ๊ฒฝ์ฐ ํธ๋ฆฌ๊ฑฐ๋๋ ์ด๋ฒคํธ ์
๋๋ค.
๐ป getAppPath()
ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ๋ก๋ฅผ ๋ถ๋ฌ์ค๋ ํจ์ ์ ๋๋ค.
๐ป getPath(name)
name
์ ํด๋นํ๋ ๊ฒฝ๋ก๋ฅผ ๋ถ๋ฌ์ค๋ ํจ์์
๋๋ค. ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ(home), ๋ฌธ์ ํด๋(document)๋ฑ์ ๊ฒฝ๋ก๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
๊ฒฝ๋ก์ ์ด๋ฆ์ electron ๋ฌธ์์์ ํ์ธํ ์ ์์ต๋๋ค.
๐ป quit()
๋ชจ๋ ์ฐฝ๋ค์ ๋ซ๊ฒํ๋ ์ด๋ฒคํธ ์
๋๋ค. ํด๋น ํจ์๋ฅผ ์คํํ๋ฉด, before-quit
์ด๋ฒคํธ๊ฐ ๋จผ์ ์คํ๋๊ณ , ๋ชจ๋ ์ฐฝ์ด ์ฑ๊ณต์ ์ผ๋ก ์ข
๋ฃ๋๋ฉด will-quit
์ด๋ฒคํธ๊ฐ ์คํ๋ฉ๋๋ค.
quit
๋ฉ์๋๊ฐ ์คํ๋๋ฉด beforeunload
์ unload
์ด๋ฒคํธ๋ ์ ์์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ๋ง์ฝ beforeunload
๊ฐ false
๋ฅผ ๋ฆฌํดํ๊ฒ ํ๋ฉด ์ข
๋ฃ๋์ง ์์ต๋๋ค.