415 lines
40 KiB
Markdown
415 lines
40 KiB
Markdown
Telegram Mini Apps Documentation
|
||
Introduction
|
||
Telegram Mini Apps позволяют разработчикам создавать высокофункциональные интерфейсы с использованием JavaScript, которые могут быть запущены непосредственно внутри Telegram и потенциально заменить традиционные веб-сайты. Mini Apps поддерживают seamless authorization, платежи через сторонних провайдеров (включая Google Pay и Apple Pay), а также персонализированные push-уведомления и многое другое.
|
||
|
||
Recent Updates
|
||
November 17, 2024 - Bot API 8.0
|
||
Full-Screen Mode: Mini Apps теперь могут переходить в полноэкранный режим в портретной и ландшафтной ориентации.
|
||
|
||
Методы:
|
||
requestFullscreen()
|
||
exitFullscreen()
|
||
Поля:
|
||
safeAreaInset: Объект, представляющий отступы безопасной области устройства, учитывающие системные элементы интерфейса, такие как вырезы или панели навигации.
|
||
top: Целое число, представляющее отступ сверху в пикселях.
|
||
bottom: Целое число, представляющее отступ снизу в пикселях.
|
||
left: Целое число, представляющее отступ слева в пикселях.
|
||
right: Целое число, представляющее отступ справа в пикселях.
|
||
contentSafeAreaInset: Объект, представляющий безопасную область для отображения контента внутри приложения, свободную от перекрывающихся элементов интерфейса Telegram.
|
||
top: Целое число, представляющее отступ сверху в пикселях.
|
||
bottom: Целое число, представляющее отступ снизу в пикселях.
|
||
left: Целое число, представляющее отступ слева в пикселях.
|
||
right: Целое число, представляющее отступ справа в пикселях.
|
||
isActive: Логическое значение, указывающее, активно ли приложение в данный момент.
|
||
isFullscreen: Логическое значение, указывающее, находится ли Mini App в настоящее время в полноэкранном режиме.
|
||
События:
|
||
activated
|
||
deactivated
|
||
safeAreaChanged
|
||
contentSafeAreaChanged
|
||
fullscreenChanged
|
||
fullscreenFailed
|
||
Homescreen Shortcuts: Mini Apps теперь могут быть добавлены в качестве ярлыков на главный экран мобильных устройств.
|
||
|
||
Методы:
|
||
addToHomeScreen()
|
||
checkHomeScreenStatus([callback])
|
||
События:
|
||
homeScreenAdded
|
||
homeScreenChecked
|
||
Emoji Status: Mini Apps теперь могут предлагать пользователям установить статус в виде emoji или запросить доступ для автоматического обновления статуса.
|
||
|
||
Методы:
|
||
setEmojiStatus(custom_emoji_id[, params, callback])
|
||
requestEmojiStatusAccess([callback])
|
||
События:
|
||
emojiStatusSet
|
||
emojiStatusFailed
|
||
emojiStatusAccessRequested
|
||
Media Sharing and File Downloads: Пользователи теперь могут делиться медиа напрямую из Mini Apps.
|
||
|
||
Методы:
|
||
shareMessage(msg_id[, callback])
|
||
downloadFile(params[, callback])
|
||
События:
|
||
shareMessageSent
|
||
shareMessageFailed
|
||
fileDownloadRequested
|
||
Geolocation Access: Mini Apps теперь могут запрашивать доступ к геолокации пользователя.
|
||
|
||
Поле:
|
||
LocationManager
|
||
События:
|
||
locationManagerUpdated
|
||
locationRequested
|
||
Device Motion Tracking: Mini Apps теперь могут отслеживать подробные данные о движении устройства.
|
||
|
||
Поля:
|
||
isOrientationLocked
|
||
Accelerometer
|
||
DeviceOrientation
|
||
Gyroscope
|
||
Методы:
|
||
lockOrientation()
|
||
unlockOrientation()
|
||
События:
|
||
accelerometerStarted
|
||
accelerometerStopped
|
||
accelerometerChanged
|
||
accelerometerFailed
|
||
deviceOrientationStarted
|
||
deviceOrientationStopped
|
||
deviceOrientationChanged
|
||
deviceOrientationFailed
|
||
gyroscopeStarted
|
||
gyroscopeStopped
|
||
gyroscopeChanged
|
||
gyroscopeFailed
|
||
Subscription Plans and Gifts for Telegram Stars: Mini Apps теперь поддерживают платные подписки, работающие на базе Telegram Stars.
|
||
|
||
Детали: Смотрите документацию Bot API для реализации платных подписок и подарков.
|
||
Loading Screen Customization: Mini Apps могут настраивать экран загрузки, добавляя свой собственный значок и специфические цвета для светлой и темной темы.
|
||
|
||
Доступ: Настройки доступны в @BotFather.
|
||
Hardware-specific Optimizations: Mini Apps, работающие на Android, теперь могут получать базовую информацию о аппаратном обеспечении устройства.
|
||
|
||
Информация: OS, версии App и SDK, модель устройства и класс производительности.
|
||
General:
|
||
|
||
Поле photo_url в классе WebAppUser теперь доступно для всех Mini Apps.
|
||
Третьи стороны (например, строители Mini App, внешние SDK и т.д.) могут проверять данные, не зная токена бота приложения.
|
||
Отладка расширена для полной поддержки устройств iOS.
|
||
Safe Area Inset
|
||
Описание
|
||
Поля safeAreaInset и contentSafeAreaInset предоставляют информацию о безопасных областях экрана, чтобы избежать перекрытия с системными элементами интерфейса, такими как вырезы или панели навигации.
|
||
|
||
Поля
|
||
top: Целое число, представляющее отступ сверху в пикселях.
|
||
bottom: Целое число, представляющее отступ снизу в пикселях.
|
||
left: Целое число, представляющее отступ слева в пикселях.
|
||
right: Целое число, представляющее отступ справа в пикселях.
|
||
CSS Variables
|
||
--tg-safe-area-inset-top
|
||
--tg-safe-area-inset-bottom
|
||
--tg-safe-area-inset-left
|
||
--tg-safe-area-inset-right
|
||
Additional Information
|
||
ThemeParams
|
||
Mini Apps могут адаптировать внешний вид интерфейса в реальном времени в соответствии с настройками темы пользователя.
|
||
|
||
bg_color: Цвет фона.
|
||
text_color: Основной цвет текста.
|
||
hint_color: Цвет подсказок.
|
||
link_color: Цвет ссылок.
|
||
button_color: Цвет кнопок.
|
||
button_text_color: Цвет текста кнопок.
|
||
secondary_bg_color: Дополнительный цвет фона.
|
||
header_bg_color: Цвет фона заголовка.
|
||
bottom_bar_bg_color: Цвет фона нижней панели.
|
||
accent_text_color: Цвет акцентного текста.
|
||
section_bg_color: Цвет фона секции.
|
||
section_header_text_color: Цвет текста заголовка секции.
|
||
section_separator_color: Цвет разделителя секции.
|
||
subtitle_text_color: Цвет текста подзаголовка.
|
||
destructive_text_color: Цвет текста для деструктивных действий.
|
||
WebAppUser
|
||
id: Уникальный идентификатор пользователя.
|
||
is_bot: Логическое значение, указывающее, является ли пользователь ботом.
|
||
first_name: Имя пользователя.
|
||
last_name: Фамилия пользователя.
|
||
username: Имя пользователя в Telegram.
|
||
language_code: Код языка пользователя.
|
||
is_premium: Логическое значение, указывающее, является ли пользователь пользователем Telegram Premium.
|
||
added_to_attachment_menu: Логическое значение, указывающее, добавлен ли бот в меню вложений.
|
||
allows_write_to_pm: Логическое значение, указывающее, разрешено ли боту отправлять сообщения пользователю.
|
||
photo_url: URL-адрес профильной фотографии пользователя.
|
||
Conclusion
|
||
Обновленная документация предоставляет более полное и детализированное описание функциональности Telegram Mini Apps, включая важные аспекты, такие как safe area inset, ThemeParams и другие. Это должно помочь ИИ-агенту программирования лучше понимать и использовать возможности Telegram Mini Apps.
|
||
|
||
References
|
||
Telegram Bot API Documentation
|
||
Telegram Mini Apps Overview
|
||
ты исключил все остальное, мне нужна вся информация в одном тексте
|
||
Понял вас. Давайте объединим всю информацию в одном тексте, чтобы создать полную и структурированную документацию для Telegram Mini Apps.
|
||
|
||
Telegram Mini Apps: Полная Документация
|
||
Введение
|
||
Telegram Mini Apps предоставляют разработчикам возможность создавать гибкие и интерактивные интерфейсы с использованием JavaScript, которые могут быть запущены непосредственно внутри приложения Telegram. Эти приложения могут заменить традиционные веб-сайты, предлагая пользователям возможность взаимодействовать с сервисами без необходимости выхода из мессенджера. Mini Apps поддерживают:
|
||
|
||
Seamless Authorization: Авторизация без необходимости ввода данных вручную.
|
||
Payments: Платежи через сторонних провайдеров, включая Google Pay и Apple Pay.
|
||
Push Notifications: Персонализированные push-уведомления.
|
||
Custom Interfaces: Пользовательские интерфейсы, которые могут быть адаптированы под нужды пользователя.
|
||
Основные Возможности
|
||
1. Full-Screen Mode (Полноэкранный Режим)
|
||
Mini Apps теперь могут работать в полноэкранном режиме, поддерживая как портретную, так и ландшафтную ориентацию. Это позволяет размещать больше контента, включая игры и медиа в широкоэкранном формате.
|
||
|
||
Методы:
|
||
requestFullscreen(): Запрашивает открытие Mini App в полноэкранном режиме.
|
||
exitFullscreen(): Запрашивает выход из полноэкранного режима.
|
||
Поля:
|
||
safeAreaInset: Объект, представляющий отступы безопасной области устройства.
|
||
top: Целое число, представляющее отступ сверху в пикселях.
|
||
bottom: Целое число, представляющее отступ снизу в пикселях.
|
||
left: Целое число, представляющее отступ слева в пикселях.
|
||
right: Целое число, представляющее отступ справа в пикселях.
|
||
contentSafeAreaInset: Объект, представляющий безопасную область для отображения контента.
|
||
top: Целое число, представляющее отступ сверху в пикселях.
|
||
bottom: Целое число, представляющее отступ снизу в пикселях.
|
||
left: Целое число, представляющее отступ слева в пикселях.
|
||
right: Целое число, представляющее отступ справа в пикселях.
|
||
isActive: Логическое значение, указывающее, активно ли приложение.
|
||
isFullscreen: Логическое значение, указывающее, находится ли Mini App в полноэкранном режиме.
|
||
События:
|
||
activated: Срабатывает, когда Mini App становится активным.
|
||
deactivated: Срабатывает, когда Mini App становится неактивным.
|
||
safeAreaChanged: Срабатывает при изменении безопасной области.
|
||
contentSafeAreaChanged: Срабатывает при изменении безопасной области для контента.
|
||
fullscreenChanged: Срабатывает при изменении состояния полноэкранного режима.
|
||
fullscreenFailed: Срабатывает, если запрос на переход в полноэкранный режим не удался.
|
||
2. Homescreen Shortcuts (Ярлыки на Главный Экран)
|
||
Пользователи могут добавлять Mini Apps в качестве ярлыков на главный экран своих устройств для быстрого доступа.
|
||
|
||
Методы:
|
||
addToHomeScreen(): Предлагает пользователю добавить Mini App на главный экран.
|
||
checkHomeScreenStatus([callback]): Проверяет, поддерживается ли функция добавления на главный экран и добавлен ли уже ярлык.
|
||
События:
|
||
homeScreenAdded: Срабатывает, когда ярлык успешно добавлен на главный экран.
|
||
homeScreenChecked: Срабатывает после проверки статуса ярлыка на главном экране.
|
||
3. Emoji Status (Статус в Виде Emoji)
|
||
Mini Apps могут предлагать пользователям установить статус в виде emoji или запросить доступ для автоматического обновления статуса.
|
||
|
||
Методы:
|
||
setEmojiStatus(custom_emoji_id[, params, callback]): Открывает диалоговое окно для установки пользователем указанного emoji в качестве статуса.
|
||
requestEmojiStatusAccess([callback]): Запрашивает разрешение на управление статусом пользователя в виде emoji.
|
||
События:
|
||
emojiStatusSet: Срабатывает, когда статус в виде emoji успешно установлен.
|
||
emojiStatusFailed: Срабатывает, если установка статуса в виде emoji не удалась.
|
||
emojiStatusAccessRequested: Срабатывает при запросе разрешения на управление статусом в виде emoji.
|
||
4. Media Sharing and File Downloads (Обмен Медиа и Загрузка Файлов)
|
||
Пользователи могут делиться медиа и загружать файлы напрямую из Mini Apps.
|
||
|
||
Методы:
|
||
shareMessage(msg_id[, callback]): Открывает диалоговое окно для отправки сообщения, предоставленного ботом.
|
||
downloadFile(params[, callback]): Открывает нативное всплывающее окно, предлагающее пользователю загрузить файл.
|
||
События:
|
||
shareMessageSent: Срабатывает, когда сообщение успешно отправлено.
|
||
shareMessageFailed: Срабатывает, если отправка сообщения не удалась.
|
||
fileDownloadRequested: Срабатывает, когда пользователь отвечает на запрос загрузки файла.
|
||
5. Geolocation Access (Доступ к Геолокации)
|
||
Mini Apps могут запрашивать доступ к геолокации пользователя, что позволяет создавать различные сервисы, основанные на местоположении.
|
||
|
||
Поле:
|
||
LocationManager: Объект для управления доступом к местоположению.
|
||
События:
|
||
locationManagerUpdated: Срабатывает при изменении объекта LocationManager.
|
||
locationRequested: Срабатывает при запросе данных о местоположении.
|
||
6. Device Motion Tracking (Отслеживание Движения Устройства)
|
||
Mini Apps могут отслеживать данные о движении устройства, что позволяет реализовать более продвинутые инструменты и возможности.
|
||
|
||
Поля:
|
||
isOrientationLocked: Логическое значение, указывающее, заблокирована ли ориентация.
|
||
Accelerometer: Объект для доступа к данным акселерометра.
|
||
DeviceOrientation: Объект для доступа к данным об ориентации устройства.
|
||
Gyroscope: Объект для доступа к данным гироскопа.
|
||
Методы:
|
||
lockOrientation(): Блокирует ориентацию Mini App в текущем режиме.
|
||
unlockOrientation(): Разблокирует ориентацию Mini App, позволяя ей изменяться в зависимости от вращения устройства.
|
||
События:
|
||
accelerometerStarted: Срабатывает, когда отслеживание акселерометра успешно начато.
|
||
accelerometerStopped: Срабатывает, когда отслеживание акселерометра остановлено.
|
||
accelerometerChanged: Срабатывает с заданной частотой после вызова метода start, отправляя текущие данные акселерометра.
|
||
accelerometerFailed: Срабатывает, если запрос на начало отслеживания акселерометра не удался.
|
||
deviceOrientationStarted: Срабатывает, когда отслеживание ориентации устройства успешно начато.
|
||
deviceOrientationStopped: Срабатывает, когда отслеживание ориентации устройства остановлено.
|
||
deviceOrientationChanged: Срабатывает с заданной частотой после вызова метода start, отправляя текущие данные об ориентации устройства.
|
||
deviceOrientationFailed: Срабатывает, если запрос на начало отслеживания ориентации устройства не удался.
|
||
gyroscopeStarted: Срабатывает, когда отслеживание гироскопа успешно начато.
|
||
gyroscopeStopped: Срабатывает, когда отслеживание гироскопа остановлено.
|
||
gyroscopeChanged: Срабатывает с заданной частотой после вызова метода start, отправляя текущие данные гироскопа.
|
||
gyroscopeFailed: Срабатывает, если запрос на начало отслеживания гироскопа не удался.
|
||
7. Subscription Plans and Gifts for Telegram Stars (Платные Подписки и Подарки)
|
||
Mini Apps теперь поддерживают платные подписки, работающие на базе Telegram Stars, что позволяет разработчикам монетизировать свои приложения с помощью различных уровней контента и функций.
|
||
|
||
Детали: Смотрите документацию Bot API для реализации платных подписок и подарков.
|
||
8. Loading Screen Customization (Настройка Экрана Загрузки)
|
||
Mini Apps могут настраивать свой экран загрузки, добавляя свой собственный значок и специфические цвета для светлой и темной темы.
|
||
|
||
Доступ: Настройки доступны в @BotFather.
|
||
9. Hardware-specific Optimizations (Оптимизация для Аппаратного Обеспечения)
|
||
Mini Apps, работающие на Android, могут получать базовую информацию о аппаратном обеспечении устройства, что позволяет оптимизировать пользовательский опыт в зависимости от возможностей устройства.
|
||
|
||
Информация: OS, версии App и SDK, модель устройства и класс производительности.
|
||
Дополнительные Возможности
|
||
Color Schemes (Цветовые Схемы)
|
||
Mini Apps получают данные о текущей цветовой теме пользователя в реальном времени, что позволяет адаптировать внешний вид интерфейса.
|
||
|
||
Design Guidelines (Рекомендации по Дизайну)
|
||
Responsiveness: Все элементы должны быть отзывчивыми и разработанными с учетом мобильного-first подхода.
|
||
UI Consistency: Интерактивные элементы должны соответствовать стилю, поведению и намерениям существующих компонентов UI.
|
||
Performance: Все анимации должны быть плавными, желательно 60fps.
|
||
Accessibility: Все вводы и изображения должны содержать метки для обеспечения доступности.
|
||
Theme Awareness: Приложение должно обеспечивать бесшовный опыт, отслеживая динамические тематические цвета, предоставляемые API, и используя их соответствующим образом.
|
||
Safe Area: Убедитесь, что интерфейс приложения учитывает безопасную область и безопасную область контента, чтобы избежать перекрытия с элементами управления, особенно при использовании полноэкранного режима.
|
||
Device Optimization: Для устройств Android, учитывайте дополнительную информацию в User-Agent и адаптируйтесь к классу производительности устройства, отключая анимации и визуальные эффекты на устройствах с низкой производительностью для обеспечения плавной работы.
|
||
Реализация Mini Apps
|
||
Telegram поддерживает семь различных способов запуска Mini Apps:
|
||
|
||
1.
|
||
Main Mini App from Profile Button (Основное Mini App из кнопки профиля)
|
||
2.
|
||
Keyboard Button Mini Apps (Mini Apps из кнопки клавиатуры)
|
||
Описание: Mini Apps, запускаемые из кнопки клавиатуры типа web_app, могут отправлять данные обратно боту в служебном сообщении с помощью Telegram.WebApp.sendData.
|
||
Использование: Пользовательские интерфейсы для ввода данных, многоразовые компоненты.
|
||
3.
|
||
Inline Button Mini Apps (Mini Apps из кнопки инлайн)
|
||
Описание: Для более интерактивных Mini Apps используйте кнопку инлайн типа web_app.
|
||
Использование: Полноценные веб-сервисы и интеграции.
|
||
4.
|
||
Launching Mini Apps from the Menu Button (Запуск Mini Apps из кнопки меню)
|
||
Описание: Mini Apps могут быть запущены из настраиваемой кнопки меню.
|
||
Использование: Быстрый доступ к приложению.
|
||
5.
|
||
Inline Mode Mini Apps (Mini Apps в режиме инлайн)
|
||
Описание: Mini Apps, запускаемые через кнопку web_app в ответе на инлайн-запрос, могут использоваться в любом месте в режиме инлайн.
|
||
Использование: Полноценные веб-сервисы и интеграции в режиме инлайн.
|
||
6.
|
||
Direct Link Mini Apps (Mini Apps по прямой ссылке)
|
||
Описание: Mini App Bots могут быть запущены по прямой ссылке в любом чате.
|
||
Использование: Полноценные веб-сервисы и интеграции, которые любой пользователь может открыть в один клик.
|
||
7.
|
||
Launching Mini Apps from the Attachment Menu (Запуск Mini Apps из меню вложений)
|
||
Описание: Mini App Bots могут быть добавлены прямо в меню вложений пользователя, что позволяет быстро запускать их из любого чата.
|
||
Использование: Быстрый доступ к приложению.
|
||
Инициализация Mini Apps
|
||
Для подключения вашего Mini App к клиенту Telegram, поместите скрипт telegram-web-app.js в тег <head> перед любыми другими скриптами:
|
||
|
||
html
|
||
<script src="https://telegram.org/js/telegram-web-app.js?56"></script>
|
||
Доступные Поля
|
||
initData: Строка с необработанными данными, переданными в Mini App.
|
||
initDataUnsafe: Объект с входными данными, переданными в Mini App.
|
||
version: Версия Bot API, доступная в Telegram-приложении пользователя.
|
||
platform: Название платформы Telegram-приложения пользователя.
|
||
colorScheme: Текущая цветовая схема, используемая в Telegram-приложении.
|
||
themeParams: Объект, содержащий текущие настройки темы, используемые в Telegram-приложении.
|
||
isActive: Логическое значение, указывающее, активно ли Mini App в данный момент.
|
||
isExpanded: Логическое значение, указывающее, развернуто ли Mini App до максимально доступной высоты.
|
||
viewportHeight: Текущая высота видимой области Mini App.
|
||
viewportStableHeight: Высота видимой области Mini App в последнем стабильном состоянии.
|
||
headerColor: Текущий цвет заголовка.
|
||
backgroundColor: Текущий цвет фона.
|
||
bottomBarColor: Текущий цвет нижней панели.
|
||
isClosingConfirmationEnabled: Логическое значение, указывающее, включен ли диалог подтверждения при закрытии Mini App.
|
||
isVerticalSwipesEnabled: Логическое значение, указывающее, включены ли вертикальные смахивания для закрытия или минимизации Mini App.
|
||
isFullscreen: Логическое значение, указывающее, находится ли Mini App в настоящее время в полноэкранном режиме.
|
||
isOrientationLocked: Логическое значение, указывающее, заблокирована ли ориентация Mini App.
|
||
safeAreaInset: Объект, представляющий отступы безопасной области устройства.
|
||
contentSafeAreaInset: Объект, представляющий безопасную область для отображения контента.
|
||
Доступные Методы
|
||
isVersionAtLeast(version): Возвращает true, если версия приложения пользователя поддерживает Bot API, равную или выше указанной.
|
||
setHeaderColor(color): Устанавливает цвет заголовка приложения.
|
||
setBackgroundColor(color): Устанавливает цвет фона приложения.
|
||
setBottomBarColor(color): Устанавливает цвет нижней панели приложения.
|
||
enableClosingConfirmation(): Включает диалог подтверждения при закрытии Mini App.
|
||
disableClosingConfirmation(): Отключает диалог подтверждения при закрытии Mini App.
|
||
enableVerticalSwipes(): Включает вертикальные смахивания для закрытия или минимизации Mini App.
|
||
disableVerticalSwipes(): Отключает вертикальные смахивания для закрытия или минимизации Mini App.
|
||
requestFullscreen(): Запрашивает открытие Mini App в полноэкранном режиме.
|
||
exitFullscreen(): Запрашивает выход из полноэкранного режима.
|
||
lockOrientation(): Блокирует ориентацию Mini App в текущем режиме.
|
||
unlockOrientation(): Разблокирует ориентацию Mini App.
|
||
addToHomeScreen(): Предлагает пользователю добавить Mini App на главный экран.
|
||
checkHomeScreenStatus([callback]): Проверяет, поддерживается ли функция добавления на главный экран и добавлен ли уже ярлык.
|
||
sendData(data): Отправляет данные боту.
|
||
switchInlineQuery(query[, choose_chat_types]): Вставляет имя бота и указанный инлайн-запрос в поле ввода текущего чата.
|
||
openLink(url[, options]): Открывает ссылку во внешнем браузере.
|
||
openTelegramLink(url): Открывает ссылку в приложении Telegram.
|
||
openInvoice(url[, callback]): Открывает счет с использованием указанной ссылки.
|
||
shareToStory(media_url[, params]): Открывает нативный редактор историй с указанной медиа.
|
||
shareMessage(msg_id[, callback]): Открывает диалоговое окно, позволяющее пользователю поделиться сообщением.
|
||
setEmojiStatus(custom_emoji_id[, params, callback]): Открывает диалоговое окно для установки указанного emoji в качестве статуса.
|
||
requestEmojiStatusAccess([callback]): Запрашивает разрешение для бота на управление статусом пользователя.
|
||
downloadFile(params[, callback]): Отображает нативное всплывающее окно, предлагающее пользователю загрузить файл.
|
||
showPopup(params[, callback]): Отображает нативное всплывающее окно.
|
||
showAlert(message[, callback]): Отображает сообщение в простом всплывающем окне с кнопкой 'Закрыть'.
|
||
showConfirm(message[, callback]): Отображает сообщение в простом окне подтверждения с кнопками 'OK' и 'Cancel'.
|
||
showScanQrPopup(params[, callback]): Отображает нативное всплывающее окно для сканирования QR-кода.
|
||
closeScanQrPopup(): Закрывает нативное всплывающее окно для сканирования QR-кода.
|
||
readTextFromClipboard([callback]): Запрашивает текст из буфера обмена.
|
||
requestWriteAccess([callback]): Запрашивает разрешение для бота на отправку сообщений пользователю.
|
||
requestContact([callback]): Запрашивает у пользователя его номер телефона.
|
||
События
|
||
Mini Apps могут получать события от Telegram-приложения, к которым можно прикрепить обработчик с помощью метода Telegram.WebApp.onEvent(eventType, eventHandler). Внутри eventHandler объект this ссылается на Telegram.WebApp, а набор параметров, передаваемых в обработчик, зависит от типа события.
|
||
|
||
Список Событий
|
||
activated: Срабатывает, когда Mini App становится активным.
|
||
deactivated: Срабатывает, когда Mini App становится неактивным.
|
||
themeChanged: Срабатывает при изменении настроек темы в Telegram-приложении.
|
||
viewportChanged: Срабатывает при изменении видимой части Mini App.
|
||
safeAreaChanged: Срабатывает при изменении отступов безопасной области устройства.
|
||
contentSafeAreaChanged: Срабатывает при изменении отступов безопасной области для контента.
|
||
mainButtonClicked: Срабатывает при нажатии на главную кнопку.
|
||
secondaryButtonClicked: Срабатывает при нажатии на дополнительную кнопку.
|
||
backButtonClicked: Срабатывает при нажатии на кнопку "Назад".
|
||
settingsButtonClicked: Срабатывает при нажатии на элемент "Настройки" в контекстном меню.
|
||
invoiceClosed: Срабатывает при закрытии открытого счета.
|
||
popupClosed: Срабатывает при закрытии открытого всплывающего окна.
|
||
qrTextReceived: Срабатывает, когда сканер QR-кода захватывает код с текстовыми данными.
|
||
scanQrPopupClosed: Срабатывает, когда пользователь закрывает всплывающее окно сканера QR-кода.
|
||
clipboardTextReceived: Срабатывает при вызове метода readTextFromClipboard.
|
||
writeAccessRequested: Срабатывает при запросе разрешения на запись.
|
||
contactRequested: Срабатывает при запросе номера телефона пользователя.
|
||
biometricManagerUpdated: Срабатывает при изменении объекта BiometricManager.
|
||
biometricAuthRequested: Срабатывает при запросе биометрической аутентификации.
|
||
biometricTokenUpdated: Срабатывает при обновлении биометрического токена.
|
||
fullscreenChanged: Срабатывает при входе или выходе из полноэкранного режима.
|
||
fullscreenFailed: Срабатывает, если запрос на вход в полноэкранный режим не удался.
|
||
homeScreenAdded: Срабатывает, когда Mini App успешно добавлен на главный экран.
|
||
homeScreenChecked: Срабатывает после проверки статуса главного экрана.
|
||
accelerometerStarted: Срабатывает, когда отслеживание акселерометра успешно начато.
|
||
accelerometerStopped: Срабатывает, когда отслеживание акселерометра остановлено.
|
||
accelerometerChanged: Срабатывает с заданной частотой после вызова метода start.
|
||
accelerometerFailed: Срабатывает, если запрос на начало отслеживания акселерометра не удался.
|
||
deviceOrientationStarted: Срабатывает, когда отслеживание ориентации устройства успешно начато.
|
||
deviceOrientationStopped: Срабатывает, когда отслеживание ориентации устройства остановлено.
|
||
deviceOrientationChanged: Срабатывает с заданной частотой после вызова метода start.
|
||
gyroscopeStarted: Срабатывает, когда отслеживание гироскопа успешно начато.
|
||
gyroscopeStopped: Срабатывает, когда отслеживание гироскопа остановлено.
|
||
gyroscopeChanged: Срабатывает с заданной частотой после вызова метода start.
|
||
gyroscopeFailed: Срабатывает, если запрос на начало отслеживания гироскопа не удался.
|
||
locationManagerUpdated: Срабатывает при изменении объекта LocationManager.
|
||
locationRequested: Срабатывает при запросе данных о местоположении.
|
||
shareMessageSent: Срабатывает, когда сообщение успешно отправлено.
|
||
shareMessageFailed: Срабатывает, если отправка сообщения не удалась.
|
||
emojiStatusSet: Срабатывает, когда статус в виде emoji успешно установлен.
|
||
emojiStatusFailed: Срабатывает, если установка статуса в виде emoji не удалась.
|
||
emojiStatusAccessRequested: Срабатывает при запросе разрешения на управление статусом в виде emoji.
|
||
fileDownloadRequested: Срабатывает, когда пользователь отвечает на запрос загрузки файла.
|
||
Заключение
|
||
Telegram Mini Apps предоставляют мощную платформу для разработчиков для создания интерактивных и функциональных приложений внутри экосистемы Telegram. Благодаря обширному API и предоставленным рекомендациям, разработчики могут создавать инновационные решения, которые улучшают пользовательский опыт и вовлеченность.
|
||
|
||
Ссылки
|
||
Telegram Bot API Documentation
|
||
Telegram Mini Apps Overview
|