Skip to main content
MiniApp — это внешнее веб-приложение, которое открывается в iframe внутри основного приложения Exode. SDK обеспечивает двустороннюю связь между мини-приложением и хостом через postMessage.

Архитектура

Exode App (host)          ◄── postMessage ──►      MiniApp (iframe)
• отправляет контекст                                   • получает user, school, theme
• слушает команды                                       • отправляет команды (navigate, snackbar)
• пушит обновления                                      • подписывается на события
Хост-сторона моста реализована внутри основного приложения Exode. Гостевая сторона (то, что подключает разработчик MiniApp) — это и есть @exode-team/sdk/miniapp.

Жизненный цикл

1

Загрузка iframe

Основное приложение открывает MiniApp по URL, передавая его в iframe.
2

Handshake

MiniApp инициализируется, отправляет хосту свой appId. Хост валидирует origin и appId, возвращает контекст (пользователь, школа, тема, конфиг).
3

Работа

MiniApp отправляет команды (navigate, showSnackbar, …). Хост пушит события (theme:changed, user:updated, …).
4

Уничтожение

При размонтировании MiniApp вызывает app.destroy() — bridge закрывает слушатели и очищает ресурсы.

Что доступно MiniApp

  • Профиль пользователя (имя, аватар, email, роль, язык)
  • Объект школы
  • Текущая тема (light / dark)
  • Платформа (web / native) и устройство (isDesktop / isMobile)
  • Навигация внутри основного приложения
  • Показ snackbar-уведомлений
  • Управление видимостью tabbar / header
  • Закрытие мини-приложения
  • Смена темы, пользователя, школы, конфига
  • Изменение маршрута хоста
  • Изменение видимости iframe

Что дальше

Клиент ExodeMiniApp

Ванильный JS-клиент: init, route, ui, события.

Контекст и типы

Структура MiniAppContext, типы событий и команд.

React-хуки

Provider и реактивные хуки для React-приложений.

Telegram Mini App

Автоавторизация через параметр ___uat.