wydanie platformy , który oferuje samowystarczalny framework do tworzenia wieloplatformowych aplikacji użytkowych, wykorzystujący jako podstawę komponenty Chromium, V8 i Node.js. Znacząca zmiana numeru wersji jest związana z aktualizacją do bazy kodu , platformy i silnik JavaScript V8 7.3. Wcześniej wstrzymanie wsparcia dla 32-bitowych systemów Linux zostało tymczasowo odłożone, a wydanie
5.0, w tym 32-bitowych wersjach.
Wśród w API specyficznych dla Electron:
- W API kontynuowano przekształcanie asynchronicznych obsługujących, wcześniej korzystających z wywołań callback, w formę opartą na mechanizmie . Wsparcie dla Promise dodano do Cookies API oraz metod app.getFileIcon, contentTracing.[getCategories| startRecording| stopRecording], debugger.sendCommand,
shell.openExternal, webContents.[loadFile| loadURL| zoomLevel| zoomFactor] i win.capturePage; - Dodano możliwość uzyskiwania informacji o systemowych kolorach w
macOS, korzystając z wywołań systemPreferences.getAccentColor,
systemPreferences.getColor i systemPreferences.getSystemColor; - Dodano funkcję process.getProcessMemoryInfo, która dostarcza statystyki dotyczące zużycia pamięci przez bieżący proces;
- W module „remote”, który reprezentuje mechanizm IPC do interakcji między procesem renderującym bieżącą stronę a procesem głównym, dodano dodatkowe możliwości filtracji zewnętrznych żądań, aby uzyskać pełną kontrolę nad dostępem do IPC. Wsparcie dla filtrów dodano do wywołań remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents i webview.getWebContents;
- Dodano możliwość zarządzania wieloma instancjami BrowserViews z jednego obiektu BrowserWindow;
- W pakowanych aplikacjach zapewniono dodanie domyślnego menu aplikacji, nawet jeśli aplikacja wyraźnie nie definiuje tego menu ani nie dodaje obsługi zdarzenia zamykania okna;
- Domyślnie aktywowany tryb pracy z izolacją sandbox, w którym proces renderujący działa w sandbox;
- Dodano zmienną środowiskową «ELECTRON_DISABLE_SANDBOX» do wyłączania izolacji sandbox, na przykład, jeśli aplikacja jest uruchamiana w kontenerze na bazie Docker;
- Dla zwiększenia bezpieczeństwa domyślnie wyłączono ustawienia nodeIntegration i webviewTag;
- API do sprawdzania pisowni (Spellchecker) przekształcono w tryb pracy nieblokujący, w którym wynik sprawdzania jest zwracany w trybie asynchronicznym;
- Ogłoszono jako przestarzałe i będą usunięte w następnej wersji:
wykonywalne pliki mksnapshot dla arm i arm64, ServiceWorker w WebContents, wywołania webFrame.setIsolated*, możliwość bezpośredniego wywoływania modułów electron.screen,
child_process,
fs,
os i path (teraz należy wywoływać przez remote.require z wykorzystaniem obsługi w izolowanym WebContents).
Przypomnijmy, że Electron pozwala tworzyć dowolne aplikacje graficzne z wykorzystaniem technologii webowych, których logika działania jest definiowana w JavaScript, HTML i CSS, a funkcjonalność może być rozszerzana poprzez system rozszerzeń. Deweloperzy mają dostęp do modułów Node.js i rozszerzonego API do tworzenia natywnych dialogów, integracji aplikacji, tworzenia menu kontekstowych, integracji z systemem powiadomień, manipulacji oknami oraz interakcji z podsystemami Chromium.
W przeciwieństwie do aplikacji webowych, programy oparte na Electron są dostarczane w postaci samodzielnych plików wykonywalnych, nie związanych z przeglądarką. Programista nie musi martwić się o portowanie aplikacji na różne platformy, Electron zapewni możliwość kompilacji dla wszystkich systemów wspieranych przez Chromium. Electron także oferuje do organizacji automatycznej dostawy i instalacji aktualizacji (aktualizacje mogą być dostarczane zarówno z osobnego serwera, jak i bezpośrednio z GitHub).
Spośród programów zbudowanych na platformie Electron można wymienić edytor , klient pocztowy , narzędzie do pracy z Git , system analizy i wizualizacji zapytań SQL , system blogowy WordPress Desktop, klient BitTorrent , a także oficjalne aplikacje do takich usług jak Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code i Discord. W sumie w katalogu aplikacji Electron 760 aplikacji. Dla uproszczenia rozwoju nowych aplikacji opracowano zestaw wzorcowych , w tym przykładów kodu do rozwiązywania różnych problemów.
Źródło: opennet.ru
