Как разобраться с кейсом: telegram Mini App открытие приложения на весь экран с кнопки Menu Button?
Сейчас ситуация такая: проблема с Mini App внутри телеграм. Добавил Main App в своего телеграм бота, по кнопке в шапке профиля открывается приложение на весь экран. Добавил ссылку на это же приложение в Menu Button, кнопке рядом с чатом, и приложение открывается в пол экрана (устанавливал настройку в BotFather - весь экран). Хотел бы, чтобы моё приложение открывалось с кнопки Menu Button (у строки ввода символов чата) на весь экран без возможности свернуть его вертикальным свайпом.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для Telegram Mini App поведение “из шапки профиля открывается на весь экран, а из Menu Button — в полэкрана” может быть ограничением клиента Telegram, а не вашей настройки. BotFather позволяет задать Mini App и меню, но фактический режим открытия зависит от точки входа, версии клиента, платформы и поддержки fullscreen API.
Сейчас в Telegram Web Apps есть методы вроде
requestFullscreen()иexpand(), но они не везде дают одинаковый результат. Базово при старте приложения стоит вызвать:const tg = window.Telegram?.WebApp; tg?.ready(); tg?.expand(); if (tg?.requestFullscreen) { tg.requestFullscreen(); }const tg = window.Telegram?.WebApp; tg?.ready(); tg?.expand(); if (tg?.requestFullscreen) { tg.requestFullscreen(); }
Но важно:
expand()разворачивает WebApp до доступной высоты, а не гарантирует настоящий fullscreen без возможности свайпа.requestFullscreen()поддерживается не всеми клиентами и может требовать актуальной версии Telegram.Проверьте ещё такие моменты:
expand()послеready(), а не до инициализации;Если пользователь открывает приложение именно из кнопки меню рядом со строкой ввода, Telegram может запускать его в compact/medium state, а потом приложение уже само просит расширение. Полностью запретить вертикальный свайп и принудительно зафиксировать full screen со стороны веб-приложения нельзя, если клиент Telegram это не разрешает.
Практический вывод: добавьте
ready(),expand()и условныйrequestFullscreen(), проверьте BotFather-настройки и версии клиентов. Если после этого Menu Button всё равно открывает половинный режим, это ограничение Telegram-клиента для данной точки входа. Тогда UX лучше проектировать так, чтобы приложение нормально работало и в expanded, и в неполном режиме.