ExodeMiniApp — основной класс клиента. Один экземпляр на приложение. Все методы типизированы и возвращают Promise.
Создание экземпляра
Параметры конфигурации
string
обязательно
Идентификатор мини-приложения, передаётся хосту при handshake. Для кастомных страниц
значение выбирается произвольно и нигде не регистрируется: хост доверяет приложению по origin адреса из поля
«URL приложения (iframe)».
string
Origin страницы школы, внутри которой открыто приложение, — например
https://my-school.exode.biz или ваш
собственный домен школы. SDK отправляет сообщения только на этот origin и принимает ответы только от него.
По умолчанию * (любой origin) — в этом случае SDK пишет предупреждение в консоль. В продакшене указывайте
origin явно.number
Таймаут handshake и всех команд (мс). По умолчанию
10000.Инициализация
MiniAppContext. Повторный вызов init() выбросит ошибку.
Если страница открыта без входа (опция «Доступна без входа»), handshake всё равно проходит, но ctx.user.id
равен 0, а персональные поля пустые — проверяйте ctx.user.id > 0, прежде чем показывать данные пользователя.
Если handshake не успел завершиться за
timeout мс — Promise отклоняется. Проверьте, что iframe открыт внутри Exode и targetOrigin корректен.Навигация (app.route)
path — это шаблон маршрута платформы (а не готовый URL), значения подставляются из params:
pageId). Текущий маршрут хоста в том же формате приходит в событии route:changed.
Когда приложение скрыто (пользователь ушёл на другую страницу или свернул окно), хост игнорирует команды
navigate, navigate:back и setTabbarVisible.UI-команды (app.ui)
minimize() работает только для страниц с типом окна «Плавающее окно», «Панель справа» или «Во весь экран»
(см. Кастомные страницы). Свёрнутое окно не выгружается —
приложение получает событие visibility:changed с visible: false и продолжает жить.На кастомных страницах школы команда setHeaderVisible сейчас не обрабатывается хостом и ничего не меняет.Promise команды разрешается, когда хост подтвердил получение. Хост подтверждает и те команды, которые
в текущем контексте ничего не делают, поэтому успешное выполнение Promise не гарантирует видимого эффекта.
События (app.on)
Подписка на события хоста. Возвращает функцию отписки.Получение текущего контекста
init() возвращает контекст один раз. Для последующего доступа используйте getContext(): он возвращает
контекст из handshake, к которому bridge применяет только события context:updated.
Завершение работы
postMessage, очищает обработчики событий. Вызывайте при размонтировании приложения.
Полный пример
Обновлено: 2026-09-28 05:04 UTC