Как разобраться с кейсом: telegram Mini App открытие приложения на весь экран с кнопки Menu Button?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: проблема с Mini App внутри телеграм. Добавил Main App в своего телеграм бота, по кнопке в шапке профиля открывается приложение на весь экран. Добавил ссылку на это же приложение в Menu Button, кнопке рядом с чатом, и приложение открывается в пол экрана (устанавливал настройку в BotFather - весь экран). Хотел бы, чтобы моё приложение открывалось с кнопки Menu Button (у строки ввода символов чата) на весь экран без возможности свернуть его вертикальным свайпом.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Frontend-редакция Ответ

Для 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.

Проверьте ещё такие моменты:

  • обновлена ли версия Telegram на тестовых устройствах;
  • задан ли Mini App через BotFather как Main Mini App, а не только Menu Button URL;
  • нет ли отличий между Android, iOS и Desktop;
  • вызывается ли expand() после ready(), а не до инициализации;
  • не открывается ли ссылка как обычный web_app button с другим контекстом.

Если пользователь открывает приложение именно из кнопки меню рядом со строкой ввода, Telegram может запускать его в compact/medium state, а потом приложение уже само просит расширение. Полностью запретить вертикальный свайп и принудительно зафиксировать full screen со стороны веб-приложения нельзя, если клиент Telegram это не разрешает.

Практический вывод: добавьте ready(), expand() и условный requestFullscreen(), проверьте BotFather-настройки и версии клиентов. Если после этого Menu Button всё равно открывает половинный режим, это ограничение Telegram-клиента для данной точки входа. Тогда UX лучше проектировать так, чтобы приложение нормально работало и в expanded, и в неполном режиме.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно