Начало работы

Что такое интеграционный аддон?

Интеграционный аддон — это папка, которую пользователь выбирает при установке. В ней как минимум должен быть файл manifest.json. В зависимости от категории аддона также могут присутствовать:

Приложение сохраняет путь установки в Config.data.addonsInstalled[].path. Аддоны не встраиваются в основной исполняемый файл приложения.

Архитектура

Слой Роль
Папка аддона manifest.json + index.js и/или веб-ресурсы
Главный процесс Запускает воркер, проверяет разрешения, мостит HTTP/config IPC, обслуживает статические маршруты
Песочница воркера GenerateContext() + vm.runInContext — глобальные объекты, доступные коду аддона

Код аддона должен использовать глобальные имена из контекста песочницы. import SDK StreamKit+ внутри VM не поддерживается.

Установка аддона

  1. Соберите или подготовьте папку с manifest.json (и необходимыми файлами).
  2. Откройте Настройки → раздел, соответствующий type вашего аддона (Платформы, Оверлей, Виджеты, Приложения).
  3. Выберите Установить из папки и укажите каталог.
  4. Подтвердите запрошенные разрешения при установке.
  5. Включите аддон и настройте параметры, если воркер вызывает GenerateConfig().

Для аддонов-воркеров на TypeScript: скомпилируйте в index.js перед установкой или установите папку с выходными файлами webpack.

Минимальный пример воркера

await network.endpoints.create('hook', 'POST', 'onHook');

events.On('onHook', ({ body }) => {
  console.log('Webhook payload', body);
  return { ok: true };
});

URL эндпоинта:

http://localhost:{WEB_SERVER_PORT}/addon/{addonId}/hook

Замените {addonId} на id из manifest.json, а {WEB_SERVER_PORT} — на порт локального веб-сервера приложения.

Структура проекта (рекомендуемая)

MyOrg-my-stream-addon/
├── manifest.json       # id: "MyOrg/my-stream-addon"
├── index.js            # или index.ts + tsconfig.json (сборка в index.js)
├── logo.png            # иконка, указанная в manifest
├── index.html          # если нужен веб-UI
└── ...                 # дополнительные ресурсы из web_contents

Связанные материалы