Почему custom URI schemes в Telegram Mini Apps ведут себя по-разному на Android, iOS и Desktop
Venc0707 4 минуты назад Почему custom URI schemes в Telegram Mini Apps ведут себя по-разному на Android, iOS и Desktop Средний 4 мин 0 JavaScript * Разработка мобильных приложений * Веб-разработка * Кейс Из песочницы...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: Venc0707 4 минуты назад Почему custom URI schemes в Telegram Mini Apps ведут себя по-разному на Android, iOS и Desktop Средний 4 мин 0 JavaScript * Разработка мобильных приложений * Веб-разработка * Кейс Из песочницы Разбираю неожиданные проблемы cross-platform onboarding между Telegram Mini Apps и native apps. Недавно я столкнулся с неожиданной проблемой при разработке Telegram Mini App onboarding flow для native networking клиента. На старте мне казалось, что весь onboarding займет буквально пару часов:открыть deeplink → импортировать подписку → подключиться.
Но на практике именно эта часть оказалась самой нестабильной во всем проекте. На первый взгляд задача выглядела довольно простой:Telegram Mini App ↓ happ://... ↓ native app ↓ import subscription ↓ connectНо на практике оказалось, что custom URI schemes внутри Telegram Mini Apps ведут себя совершенно по-разному:Android открывает deeplink стабильно;iOS блокирует часть сценариев;Windows имеет собственные ограничения;Linux Desktop ведет себя нестабильно и пока остается самой непредсказуемой платформой.
Технические детали
В итоге самой сложной частью проекта оказался вовсе не backend, а cross-platform onboarding UX. Архитектура flowТекущая схема выглядит так:Telegram Bot ↓ Mini App (Vue 3 + Telegram WebApp API) ↓ FastAPI Backend ↓ crypto API → encrypted deeplink ↓ happ://... ↓ Happ Client ↓ subscription import ↓ connectДля разных платформ пришлось использовать разные форматы ссылок:Android: happ://crypt5/BASE64 iOS / Windows: happ://add/ Install redirect: crypt5 работает, но не совсемНа Android изначально использовался encrypted deeplink формата:happ://crypt5/BASE64Ссылка генерируется через внешний crypto API.
Первой неожиданной проблемой стало то, что API возвращал два склеенных base64-блока. Сначала казалось, что нужно обрезать ответ на backend стороне. После нескольких тестов выяснилось, что Android-клиент Happ ожидает именно полный оригинальный ответ от crypto API.
То есть проблема была не в “лишних символах”, а в особенностях internal parser внутри Android-клиента. iOS: Telegram WebView против custom schemesСамой проблемной платформой оказался iOS. Прямые варианты вроде:window.
Отраслевые последствия
не работали внутри Telegram WebView. iOS блокирует custom URI schemes, если вызов не проходит через корректный browser/user interaction flow. В итоге рабочим решением оказался промежуточный install page:telegram.
openLink( ' А внутри install page:window. href = urlНа удивление именно такой redirect-flow оказался наиболее стабильным. Windows: crypt5 не поддерживаетсяWindows-версия Happ неожиданно отказалась принимать encrypted crypt5 ссылки.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




