← Назад к вопросам

В чем разница между app link и deep link?

1.7 Middle🔥 63 комментариев
#Android компоненты#Жизненный цикл и навигация

Комментарии (3)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Различие между App Link и Deep Link

В Android-разработке Deep Link и App Link — это два взаимосвязанных, но принципиально разных механизма для навигации пользователей к конкретному контенту внутри приложения. Основное различие заключается в верификации владения доменом и поведении системы при обработке ссылок.

Deep Link (Глубокая ссылка)

Deep Link — это общий термин для любой ссылки, которая ведет пользователя в конкретное место внутри приложения, а не просто открывает его стартовый экран. В контексте Android это часто реализуется через Intent Filter в AndroidManifest.xml.

Ключевые характеристики:

  • Не требует верификации домена: Ссылка может использовать кастомную схему (например, myapp://details/123) или HTTP/HTTPS URL.
  • Выбор приложения: При нажатии на HTTPS Deep Link система покажет диалог выбора приложения (Disambiguation Dialog), если несколько приложений зарегистрировали один и тот же Intent Filter.
  • Уязвимость для подмены: Поскольку владение доменом не проверяется, злонамеренное приложение может зарегистрировать те же фильтры и перехватывать ссылки.
  • Основное применение: Внутренняя навигация, ссылки из push-уведомлений, переходы из других приложений, где контроль над доменом невозможен.

Пример объявления Deep Link в манифесте:

<activity android:name=".ProductActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Используется HTTP-схема без строгой привязки -->
        <data android:scheme="https"
              android:host="example.com"
              android:pathPrefix="/product" />
    </intent-filter>
</activity>

App Link (Верифицированная глубокая ссылка)

App Link — это особая, более безопасная разновидность Deep Link для HTTP/HTTPS URL, представленная в Android 6.0 (API 23). Ключевая особенность — цифровая верификация, подтверждающая, что конкретный домен принадлежит вашему приложению.

Ключевые характеристики:

  • Требует верификации домена: Вы должны разместить на своем сайте assetlinks.json (Digital Asset Links), который связывает домен с отпечатком вашего сертификата подписи приложения.
  • Автоматическое открытие: После успешной верификации система Android автоматически открывает ваше приложение без диалога выбора. Это создает бесшовный пользовательский опыт, как при переходе между веб-страницами.
  • Защита от подмены: Другие приложения не могут зарегистрироваться для обработки ваших верифицированных ссылок, что повышает безопасность.
  • Требует HTTPS: Работает только со схемами https (или http для локальной отладки с флагами).

Пример файла assetlinks.json для верификации:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.yourcompany.yourapp",
      "sha256_cert_fingerprints": [
        "FA:2C:...:Ваш_отпечаток_сертификата"
      ]
    }
  }
]

Файл должен быть доступен по адресу: https://example.com/.well-known/assetlinks.json.

Сравнительная таблица

КритерийDeep LinkApp Link
Схемыhttp, https, custom (myapp://)Только https (основная), http (отладка)
Верификация доменаНе требуетсяОбязательна (Digital Asset Links)
Поведение при кликеДиалог выбора приложенияПрямой запуск вашего приложения
БезопасностьНиже (возможна подмена)Выше (защита от перехвата)
Минимальный APIЛюбойAndroid 6.0 (API 23) для автоматического открытия
Основная цельОбщая глубокая навигацияБесшовная интеграция веб-сайта и приложения

Выводы и рекомендации

На практике выбор зависит от сценария:

  1. Используйте App Links, когда вы контролируете домен и хотите обеспечить нативный, бесшовный переход с вашего сайта в приложение (например, для мобильных пользователей, открывающих ссылку из письма). Это лучший пользовательский опыт.
  2. Используйте Deep Links (особенно с кастомными схемами) для:
    *   Внутренних коммуникаций (уведомления, виджеты).
    *   Сценариев, где использование HTTPS-домена невозможно или нецелесообразно.
    *   Обратной совместимости с версиями Android ниже 6.0.

Важно: Для надежной реализации App Links необходимо правильно настроить Intent Filter в манифесте, подписать APK релизным сертификатом, корректно сгенерировать и разместить файл assetlinks.json, а также протестировать верификацию с помощью инструментов adb shell pm verify-app-links и онлайн-валидаторов от Google.

В чем разница между app link и deep link? | PrepBro