Чтобы вызвать функцию, предоставляемую Telegram MiniApp из App Ui, необходимо вызвать action c type: "telegramWebApp"
:
interface WebAppAction {
type: "telegramWebApp",
method: MethodName,
params: SingleParamOrArray
}
type MethodName = 'setBackgroundColor' | 'enableClosingConfirmation' | 'disableClosingConfirmation' | 'openLink' | 'openTelegramLink' | 'showAlert' | 'showScanQrPopup' | 'requestWriteAccess' | 'expand' | 'close'
type SingleParamOrArray = Param | Param[]
type Param = string | object | Function
Функция requestWriteAccess
имеет дополнительную логику - если пользователь не даст разрешение на отправку, то дальнейшая цепочка действий (actions) будет прервана.
Функция устанавливает цвет фона приложения в формате #RRGGBB
. Вы также можете использовать ключевые слова bg_color
и secondary_bg_color
.
Параметр | Тип | Описание |
---|---|---|
color | string | Цвет фона в формате #RRGGBB |
<button onClick={{ type: "telegramWebApp", method: 'setBackgroundColor', params: '#FF0000' }}>Click</button>
Функция включает диалоговое окно подтверждения при попытке пользователя закрыть Mini App. Параметры отсутствуют.
<button onClick={{ type: "telegramWebApp", method: 'enableClosingConfirmation' }}>Click</button>
Для более подробного изучения, посетите документацию от Telegram
Функция отключает диалоговое окно подтверждения при попытке пользователя закрыть Mini App. Параметры отсутствуют.
<button onClick={{ type: "telegramWebApp", method: 'disableClosingConfirmation' }}>Click</button>
Функция открывает ссылку во внешнем браузере. Mini App не будет закрыт. Если необязательный параметр options передается с полем try_instant_view=true, ссылка будет открыта в режиме мгновенного просмотра, если это возможно.
Обратите внимание, что этот метод можно вызывать только в ответ на взаимодействие пользователя с интерфейсом Mini App (например, клик внутри Mini App или на основной кнопке).
Параметр | Тип | Описание |
---|---|---|
url | string | Ссылка для открытия |
options | {try_instant_view?: boolean} | Необязательный параметр |
<button onClick={{ type: "telegramWebApp", method: 'openLink', params: 'https://chatium.ru' }}>Click</button>
Функция открывает ссылку на telegram внутри приложения Telegram. Mini App не будет закрыт после вызова этого метода.
Параметр | Тип | Описание |
---|---|---|
url | string | Ссылка для открытия |
<button onClick={{ type: "telegramWebApp", method: 'openTelegramLink', params: 'https://t.me/chatiumhelp' }}>Click</button>
Функция показывает сообщение в простом диалоге с кнопкой "Закрыть".
Параметр | Тип | Описание |
---|---|---|
message | string | Сообщение для отображения |
<button onClick={{ type: "telegramWebApp", method: 'showAlert', params: 'Message' }}>Click</button>
Функция показывает нативное всплывающее окно для сканирования QR-кода, описанное параметром типа ScanQrPopupParams. Mini App получит событие qrTextReceived каждый раз, когда сканер поймает код с текстовыми данными.
Параметр | Тип | Описание |
---|---|---|
params | {text?: string} | Текст для отображения под заголовком "Сканировать QR", 0-64 символа |
<button
onClick={{
type: "telegramWebApp",
method: 'showScanQrPopup',
params: {
title: 'Title',
message: 'Message'
}
}}
>Click</button>
Функция показывает нативное всплывающее окно, запрашивающее разрешение на отправку сообщений пользователю. Если пользователь не даст разрешение, дальнейшая цепочка действий будет прервана.
<button
onClick={[
{ type: "telegramWebApp", method: 'requestWriteAccess' },
showToast('Permission granted!') // Не будет вызвано, если пользователь не даст разрешение
]}
>Click</button>
Функция разворачивает Mini App на максимально доступную высоту.
<button onClick={{ type: "telegramWebApp", method: 'expand' }}>Click</button>
Функция закрывает Mini App.
<button onClick={{ type: "telegramWebApp", method: 'close' }}>Click</button>
Более подробную информацию о методах Telegram MiniApp можно найти в документации Telegram