Подготовлен (https://electronjs.org/blog/electron-4-0) релиз платформы Electron 4.0.0 (https://electronjs.org), которая предоставляет самодостаточный фреймворк для разработки многоплатформенных пользовательских приложений, использующий в качестве основы компоненты Chromium, V8 и Node.js. Значительное изменение номера версии связано с обновлением до кодовой базы Chromium 67, платформы Node.js 10.11.0 и JavaScript-движка V8 6.9. Другие изменения (https://github.com/electron/electron/releases/tag/v4.0.0):
- В классе BrowserWindows (https://electronjs.org/docs/api/browser-window) и теге webview (https://electronjs.org/docs/api/webview-tag) из соображений повышений безопасности добавлена возможность отключения модуля "remote (https://electronjs.org/docs/api/remote)", представляющего IPC-механизм для взаимодействия между процессом отрисовки текущей страницы и основным процессом;
- Добавлена поддержка фильтрации запросов remote.require() и remote.getGlobal() для получения полного контроля за обращением модулей к IPC, что может оказаться полезным, когда не хочется полностью отключать модуль remote в процессе отрисовки или в webview.
- Предоставлена возможность доступа к панели About из JavaScript-кода. Для показа данной панели теперь можно использовать вызов app.showAboutPanel() (https://electronjs.org/docs/api/app?query=show#appshowaboutp...), выполнение которого аналогично клику на соответствующем меню;
- Добавлен метод setBackgroundThrottling(), позволяющий управлять включением и выключением механизма урезания активности генерации событий таймера и отрисовки анимации для выполняемых в фоне окон;
- Изменён механизм блокировки запуска более одного экземпляра приложения. Для установки блокировки вместо app.makeSingleInstance() теперь следует использовать вызов app.requestSingleInstanceLock();
- Изменены выставляемые по умолчанию значения для настроек:
contextIsolation = true, nodeIntegration = false, webviewTag = false;
- Отключены средства для интеграции Node.js для окон в режиме nativeWindowOpen (ранее данная возможность была объявлена устаревшей);
- Прекращена поддержка macOS 10.9 (OS X Mavericks).
Напомним, что Electron позволяет создавать любые графические приложения с использованием браузерных технологий, логика работы которых определяется на JavaScript, HTML и CSS, а функциональность может быть расширена через систему дополнений. Разработчикам доступны модули Node.js, а также расширенный API для формирования нативных диалогов, интеграции приложений, создания контекстных меню, интеграции с системой вывода уведомлений, манипуляции окнами, взаимодействия с подсистемами Chromium.
В отличие от web-приложений, программы на базе Electron поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру. При этом разработчику не нужно заботиться о портировании приложения для различных платформ, Electron обеспечит возможность сборки для всех систем, поддерживаемых в Chromium. Electron также предоставляет средства (http://electron.atom.io/docs/api/auto-updater/) для организации автоматической доставки и установки обновлений (обновления можно доставлять как с отдельного сервера, так и напрямую с GitHub).
Из программ, построенных на базе платформы Electron можно отметить редактор Atom (https://atom.io/), почтовый клиент Nylas (https://nylas.com/), инструментарий для работы с Git GitKraken (https://www.gitkraken.com/), система анализа и визуализации SQL-запросов Wagon (https://www.wagonhq.com/), система ведения блогов Wordpress Desktop, BitTorrent-клиент WebTorrent Desktop (https://webtorrent.io/desktop), а также официальные клиенты к таким сервисам, как Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike и Discord. Всего в каталоге программ Electron представлено (https://electronjs.org/apps) 631 приложение. Для упрощения разработки новых приложений подготовлен набор типовых демонстрационных приложений (https://github.com/electron/electron-api-demos), включающих примеры кода для решения различных задач.
URL: https://electronjs.org/blog/electron-4-0
Новость: https://www.opennet.ru/opennews/art.shtml?num=49829