Skip to content

Instantly share code, notes, and snippets.

@mrmlnc
Last active August 25, 2023 07:23
Show Gist options
  • Star 34 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save mrmlnc/bd130dc6852fe423ec03 to your computer and use it in GitHub Desktop.
Save mrmlnc/bd130dc6852fe423ec03 to your computer and use it in GitHub Desktop.
Electron API

Базовые возможности

process — это объект, позволяющий получить информацию о типе запущенного процесса (рендеринг или основной процесс), версию Chrome и Electron, а также путь до выполняемого js-файла.

Пользовательские элементы DOM:

Объект File — это абстракция над нативным File, передающая стандартному HTML5 file API путь к физическому расположению файла в файловой системе пользователя.

Тег <webview> — возможность встраивания гостевого контента (веб-страницы) в гостевой контейнер, работающий в отдельном процессе.

Функция window.open — создание нового окна на странице (экземпляр BrowserWindow) и возможность отправки сообщений в родительское (основное) окно.

Модули

app — модуль, отвечающий за управление жизненным циклом приложения. Предоставляет доступ к событиям (выход, фокус и т.д.) и методам (имя, версия, док и т.д.), позволяющим управлять приложением.

auto-updater — возможность автоматического обновления приложения. На момент написания статьи доступен только на OS X (на GitHub висит PR для Windows от 15 июня этого года).

browser-window — создание нового окна браузера с заданными параметрами (размер, иконка, заголовок, позиционирование и т.д.). Предоставляет доступ к событиям и методам, позволяющим управлять созданным окном.

content-tracing — модуль, собирает данные трассировки, генерируемые контентным модулем Chromium. Для анализа данных требуется браузер Chrome.

dialog — создание нативных диалоговых окон. Модуль позволяет создавать нативное окно открытия файлов или директорий, сохранения файлов, а также возможность отображать окно сообщения.

global-shortcut — регистрация и сопровождение глобальных сочетаний клавиш, доступных для приложения после его полной загрузки.

ipc (main process) — модуль, обрабатывающий синхронные и асинхронные сообщения, посылаемые из процесса рендеринга (веб-страницы) в главный процесс.

menu — создание нативного меню приложения и контексного меню. Пункты меню создаются с помощью модуля menuItem.

menu-item — позволяет добавлять пункты в контексное меню или меню приложения.

power-monitor — модуль, предоставляющий возможность отслеживать состояние питания системы после полной загрузки приложения, используя несколько событий.

power-save-blocker — включение этого модуля запрещает переход системы в спящий режим, когда запущено окно, на котором подключен этот модуль.

protocol — регистрация собственного протокола или перехват уже существующего. Протокол здесь следует понимать буквально: http, atom, file и т.д.

session — объект, являющийся свойством webContents, который в свою очередь является свойством BrowserWindow. Предоставляет возможность работать с cookies и некоторыми другими методами.

web-contents — одно из свойств BrowserWindow, отвечающее за рендеринг и контроль веб-страницы. Позволяет получать информацию о текущем окне и управлять его содержимым (аудио, копировать, вставить и т.д.).

tray — создание иконки в трее, а также его содержимого (пунктов меню). Есть специальные методы для работы с различными операционными системами, например, доком на OS X.

Модули процесса рендеринга (веб-страница)

ipc (render) — несколько методов, позволяющих отправлять сообщения из процесса рендеринга (веб-страницы) в главный (основной) процесс.

remote — простой способ межпроцессного взаимодействия (IPC) между процессом рендеринга и основным процессом.

web-frame — предоставляет возможность управлять рендеренгом веб-страницы (зум, проверка правописания, приватное окно).

Модули процессов

clipboard — предоставляет доступ к буферу обмена и таким операциям, как копирование и вставка.

crash-reporter — модуль позволяет отправлять отчеты о сбоях в работе приложения на удаленный сервер.

native-image — возможность передачи изображений в API, которые требуют наличия изображения (иконки), например, модуль tray или browser-window. Есть поддержка ретины и работы с изображениями в буфере обмена.

screen — предоставление информации о разрешении, дисплеях и положении курсора. Работает только после полной загрузки приложения.

shell — методы для работы с десктопными приложениями. Здесь речь идет об открытии файлов в других приложениях, удалении файлов и т.д.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment