Что такое диплинк (deep link) в мобильных приложениях?

«Что такое диплинк (deep link) в мобильных приложениях?» — вопрос из категории Мобильное тестирование, который задают на 22% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Диплинк (Deep Link, «глубинная ссылка») — это специальный URI (URL), который ведет пользователя не просто на главный экран приложения, а на конкретный контент или выполнение определенного действия внутри него.

Структура и пример:

  • Схема: myapp://product/123 (кастомная схема) или https://example.com/product/123 (универсальная ссылка).
  • Пример универсальной ссылки (Universal Link для iOS / App Link для Android): https://www.example.com/products/awesome-sneakers-123

Как это работает:

  1. Пользователь кликает на ссылку (в email, браузере, другом приложении).
  2. Операционная система проверяет, зарегистрировано ли приложение для обработки такого домена/схемы.
  3. Если приложение установлено: Оно открывается на нужном экране (например, карточка товара с ID 123).
  4. Если приложение не установлено:
    • Для кастомных схем (myapp://) — может ничего не произойти или появиться ошибка.
    • Для универсальных ссылок (https://) — пользователь попадает на соответствующую веб-страницу, откуда может быть предложено установить приложение.

Что важно при тестировании диплинков:

  1. Корректное открытие: Приложение запускается и показывает правильный контент.
  2. Обработка состояния: Проверка при запущенном, свернутом и закрытом приложении.
  3. Обработка ошибок: Неверные или поврежденные параметры в ссылке.
  4. Навигация: История «Назад» работает корректно после открытия по диплинку.
  5. Конфиденциальность: Защита от перехвата ссылок другими приложениями.

Пример обработки в Android (Intent Filter в манифесте):

<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" />
        <!-- Обработка Universal Link -->
        <data android:scheme="https"
              android:host="www.example.com"
              android:pathPrefix="/products/" />
    </intent-filter>
</activity>

Диплинки критически важны для маркетинга, ретаргетинга и создания seamless-опыта между вебом и приложением.