ADR-0019, развилка «а» · проверка допущения перед выбором
Шаг 1 — без него замер бессмысленен.
Если Companion не установлен, ссылку физически нечем перехватить, и любой результат
будет «не сработало» — независимо от того, отдаёт Telegram ссылку или нет.
Отличить одно от другого страница не может, поэтому кнопки теста заблокированы,
пока установка не подтверждена.
Не скачивается по кнопке? Telegram WebView не умеет загрузки — ссылка выносится
во внешний браузер. Если и там тихо, откройте вручную: https://tuneton-46-161-6-158.sslip.io/companion-poc.apk
Что проверяем. Ветка «deep link» в развилке «а» стоит на непроверенном допущении:
что тап по ссылке внутри Telegram вообще передаёт управление внешнему Android-приложению.
Проект уже спотыкался об этот класс — в Caddy до сих пор висит костыль
Content-Disposition для APK, потому что Telegram WebView своевольничает.
Пока это не измерено, выбирать ветку рано.
Как читать результат. Успех = открылся Companion и показал «✅ ХЕНДОФФ СРАБОТАЛ».
Провал = вы оказались на странице-заглушке /pair в браузере Telegram.
Оба исхода уходят на реле сами, вручную ничего переписывать не нужно —
у каждой кнопки свой маркер via, поэтому видно, какой именно способ сработал.
Про верификацию. Verified App Link требует, чтобы Android успел проверить
/.well-known/assetlinks.json — обычно это происходит при установке,
при наличии сети. Ставили офлайн — переустановите онлайн, иначе ссылка
откроется через диалог выбора или уйдёт в браузер.
А. Verified App Link (https://tuneton-46-161-6-158.sslip.io/pair)
Главная ветка. Верифицированная ссылка должна открывать приложение без диалога выбора.
Если появился диалог «чем открыть» — верификация не прошла, но хендофф в принципе возможен.
Контрольный замер. Схема не требует домена и верификации, но небезопасна: любое
приложение может объявить такую же и перехватить токен. Нужна, чтобы отличить
«Telegram не отдаёт ссылки вообще» от «не отдаёт именно https».
Кнопки выше запускаются изнутри Mini App. Отдельный случай — тап по ссылке
в обычном сообщении бота: это другой обработчик Telegram и он может вести себя иначе.
Отправьте боту /pairtest и нажмите ссылки оттуда.