Кнопка Mini App скрыта системной панелью: какие документы Telegram проверять
Отделите высоту viewport, безопасную область устройства, область контента Telegram и полноэкранный режим до передачи скриншота разработчику.
Сигналы для наблюдения
- Версия и платформа WebApp сохранены вместе со скриншотом
- Текущий и стабильный viewport отделены от двух безопасных областей
- Событие полноэкранного режима воспроизводится на собственной тестовой поверхности
Если кнопка Telegram Mini App находится под вырезом, системной панелью или элементом Telegram, откройте официальный WebApp API (программный интерфейс) и сохраните пять наблюдений: version и platform, viewportHeight и viewportStableHeight, safeAreaInset, contentSafeAreaInset и результат полноэкранного режима. Скриншот показывает симптом, но не границу, которая изменилась.
Этот путь нужен координатору агентства, который с разрешения читает группы основателей и разработчиков. Полезен воспроизводимый сбой конкретного клиента. За день другой подрядчик может первым организовать расследование, но цена по одному изображению часто направляет задачу не тому специалисту.
Начните с WebApp.version и WebApp.platform
Официальная документация Mini Apps перечисляет version и platform. Первое поле показывает доступную в приложении Telegram версию Bot API, второе — платформу.
Фразы «ошибка на iPhone» недостаточно: это может быть иной клиент, поверхность или путь запуска. Запросите собственный тестовый путь, оба значения, ориентацию и время. Производственные ключи и данные пользователей не нужны. Без этих сведений есть отчёт о совместимости, но не полный технический запрос.
Выберите свойство viewport по вопросу
viewportHeight — текущая видимая высота. Она меняется при разворачивании Mini App. Telegram предупреждает, что частоты обновления недостаточно, чтобы плавно вести элемент за движущейся нижней границей.
viewportStableHeight хранит последнюю стабильную высоту и лучше подходит для закреплённых снизу элементов. Событие viewportChanged содержит isStateStable: истина означает завершение изменения, ложь — продолжающийся жест или анимацию.
Если кнопка прыгает только во время движения, проверяйте выбор состояния. Если после стабилизации она всё ещё скрыта, переходите к безопасным областям и CSS. Один снимок без времени и значений не различает эти случаи.
Безопасная область устройства и контента различаются
safeAreaInset учитывает вырезы и системные панели устройства. contentSafeAreaInset показывает пространство, не перекрытое интерфейсом Telegram.
В полноэкранном дизайне элемент может обойти вырез, но остаться под контролом Telegram. Слепое сложение отступов создаст лишнее пространство. Сохраните четыре стороны и правила CSS.
safeAreaChangedвозникает при изменении безопасной области устройства.contentSafeAreaChangedвозникает при изменении области контента.- Текущая документация помечает оба события Bot API 8.0+; значения читаются из соответствующих свойств.
Обработчик события не получает сами отступы. Приложение читает обновлённое свойство, поэтому в передаче не следует запрашивать несуществующее тело события.
У полноэкранного режима есть наблюдаемый результат
Для Bot API 8.0+ описаны requestFullscreen(), isFullscreen, fullscreenChanged и fullscreenFailed. Первое событие отмечает вход или выход; второе может вернуть UNSUPPORTED либо ALREADY_FULLSCREEN.
Экран без заголовка только выглядит полноэкранным. Сохраните действие, событие, isFullscreen, версию и платформу. UNSUPPORTED задаёт границу совместимости; без инструментирования следующий шаг — наблюдение, а не утверждение о сбое Telegram.
Пять строк полезнее десяти снимков
Передача задачи содержит:
- Вход: собственная тестовая ссылка или поверхность без секретов.
- Клиент:
version,platform, ориентация и время. - Viewport: текущая и стабильная высота,
isStateStable. - Отступы: области устройства и контента до и после изменения.
- Полный экран: действие, состояние и событие успеха или ошибки.
Затем приложите один снимок или короткое видео, скрыв аккаунты, личные чаты и посторонние сообщения. Цель — связать перекрытие с состоянием API.
Составной пример: «на iOS кнопка checkout под панелью в full screen, desktop нормально; какой inset нужен?» Это не реальный клиент. Неизвестны версия, вход, значения, ориентация, CSS, владелец и разрешение на контакт. Сообщение можно классифицировать, но оно не подтверждает причину.
Назначайте по первому отсутствующему наблюдению
Нет версии и платформы — собирайте воспроизведение. Ошибка только при изменении размера — проверяйте viewport. Значения противоречат CSS — передавайте инженеру макета. Полный экран возвращает неподдерживаемый результат — проектируйте совместимый вариант.
TOP Prospect может собрать авторизованные фрагменты, источник, время, симптомы и неизвестные для ручной проверки. Он не запускает JavaScript, не входит в репозиторий, не устанавливает личность и не связывается с автором; новая конфигурация цели сохраняется, но пока не создаёт кандидатов автоматически.
Различие Bot API и MTProto помогает разделить технические поверхности. Проверка исходной ссылки сохраняет источник, а контекст темы форума — правильную ветку. Условия указаны на странице цен.
Ключевые факты
versionиplatformописывают доступную поверхность WebApp.- Текущая высота меняется, стабильная хранит конечное состояние.
- Telegram не советует привязывать элемент к движущейся границе через
viewportHeight. - Одна область относится к устройству, другая — к интерфейсу Telegram.
- События 8.0+ дают наблюдаемые изменения и ошибки.
- Скриншот не подтверждает причину, владельца или полномочия покупателя.
Частые вопросы
Где находятся поля безопасной области?
В официальном WebApp API и таблице событий Mini Apps.
Можно ли менять две области местами?
Нет: одна учитывает системный интерфейс, другая — элементы Telegram.
Какая высота нужна нижней кнопке?
Telegram указывает viewportStableHeight и предупреждает об ограничении текущей высоты.
Как увидеть несовместимость полного экрана?
fullscreenFailed может вернуть UNSUPPORTED; сохраните также версию и платформу.
Редакционная проверка завершена 26 августа 2026 года по официальной документации Telegram Mini Apps.
Часто задаваемые вопросы
Где Telegram документирует безопасные области Mini App?
В официальном WebApp API: свойства safeAreaInset и contentSafeAreaInset и связанная таблица событий.
safeAreaInset и contentSafeAreaInset одинаковы?
Нет. Первое учитывает системный интерфейс устройства, второе — область без перекрытия элементами Telegram.
Нужно ли привязывать нижнюю кнопку к viewportHeight?
Telegram предупреждает, что обновления viewportHeight недостаточно быстры, и указывает viewportStableHeight для закреплённых снизу элементов.
Что подтверждает отсутствие поддержки полноэкранного режима?
В Bot API 8.0+ событие fullscreenFailed может вернуть UNSUPPORTED; одного скриншота недостаточно.
Источники и дополнительное чтение
Как обнаруживается Signal, заслуживающий внимания
Методика показывает, как Top Prospect находит и упорядочивает Signals, которые стоит проверить, сохраняет исходный контекст Telegram, удаляет дубли и помогает определить порядок просмотра. Решение о дальнейших действиях остаётся за вами.