Deeplink (глубокая ссылка)
Специальная URL-схема, открывающая нужный экран мобильного приложения вместо его главной страницы; реализуется через Universal Links (iOS) и App Links (Android).
Deeplink (глубокая ссылка) — URI, который при переходе открывает конкретный экран или состояние мобильного приложения, минуя его главную страницу. В отличие от обычной HTTPS-ссылки, ведущей на сайт, deeplink передаёт управление непосредственно нативному приложению, установленному на устройстве.
Форматы и механизмы реализации
Существует два основных подхода. Первый — кастомные URI-схемы вида myapp://product/123: разработчик регистрирует произвольный протокол в манифесте приложения. Подход прост в реализации, но небезопасен: любое приложение может перехватить обработку схемы, а браузер не верифицирует владельца. Второй подход — Universal Links (iOS) и App Links (Android): ссылка выглядит как обычный HTTPS-адрес, но платформа проверяет специальный файл конфигурации на сервере домена (apple-app-site-association и assetlinks.json соответственно), убеждаясь, что данный домен действительно связан с этим приложением. Этот метод считается безопасным и рекомендованным.
Если приложение не установлено на устройстве, Universal Link автоматически открывает соответствующую HTTPS-страницу в браузере — как правило, это страница продукта в App Store / Google Play или мобильная веб-версия. Такое поведение называют fallback.
Deeplink в QR-кодах
QR-код — удобный носитель для deeplink, особенно в офлайн-каналах: печатная реклама, ценники, упаковка товара, POS-материалы. Сценарии использования:
- Открытие карточки товара в приложении магазина при сканировании ценника.
- Переход на экран оплаты в банковском приложении по QR на кассе.
- Запуск онбординга или промо-активации после сканирования листовки.
- Автоматическое подключение к Wi-Fi или конфигурация IoT-устройства.
Динамический QR-код с deeplink даёт дополнительное преимущество: URL внутри кода остаётся неизменным (короткая ссылка), а назначение можно перенаправить в любой момент — например, переключить на другое приложение или обновить путь внутри того же приложения после обновления версии. Это исключает необходимость перепечатывать тираж при изменении архитектуры приложения.