Electron umożliwia wykonywanie operacji, których żadna przeglądana przeglądarka nie umożliwia. Okazuje się bowiem, że bez pytania o zgodę użytkownika można bez problemu na dysku twardym zapisać coś do pliku lub odczytać coś z pliku. Nie jest to jednak jedyna czynność jaką może wykonać program desktopowy.
W moim przypadku zdecydowałem się na stworzenie klasy, która będzie odczytywała i zapisywała dane o rozmiarze okna podczas zmiany jego rozmiaru. Oto ta klasa, która umieściłem w pliku initialize.js:
by po chwili lub co najwyżej dwóch wczytać te dane z pliku (jeżeli tylko takowy istnieje). W funkcji createWindow ustawiam wymiary okna na podstawie wczytanych danych oraz podpinam się pod zdarzenie resize by przechwycić zmianę rozmiarów okna:
function createWindow() {
win = new BrowserWindow({
width: initializeApp.initialData.windowWidth,
height: initializeApp.initialData.windowHeight,
webPreferences: {
nodeIntegration: true,
},
});
/**
* Tutaj wskazywany jest plik widoku okna
*/
win.loadFile("index.html");
Messages.initMessages(win);
win.on("resize", (event) => {
let size = win.getSize()
initializeApp.initialData.windowWidth = size[0];
initializeApp.initialData.windowHeight = size[1];
})
Pozostało już tylko zapisać ustawienia do pliku co też i czynię w callbacku podpiętym pod zdarzenie window-all-closed: