До iOS 9 переход между мобильными сайтами и нативными приложениями iPhone был непредсказуемым и неуклюжим. Разработчики полагались на пользовательские URI-протоколы, такие как instagram:// или mybank://. Эти схемы часто вызывали раздражающие системные предупреждения с вопросом «Открыть в приложении?», полностью переставали работать, если приложение отсутствовало, и имели серьезные уязвимости в области безопасности. Чтобы устранить эти фундаментальные недостатки, Apple представила Universal Links. Но что такое универсальная ссылка и почему она изменила архитектуру мобильного программного обеспечения?

В своей основе, Universal Link — это стандартный, безопасный HTTPS веб-URL, который бесшовно направляет к конкретным контроллерам представлений внутри установленного iOS-приложения. Если приложение установлено, iOS запускает его мгновенно без открытия Safari. Если приложение отсутствует, операционная система аккуратно загружает адаптивную веб-страницу в Safari без отображения диалогов с ошибками. В этом техническом исследовании мы рассматриваем внутренние механизмы работы Apple Universal Links, изучаем конфигурационный файл AASA и объясняем, почему современная мобильная маршрутизация зависит от этого протокола.

Понимание универсальных ссылок имеет ключевое значение для любого инженера iOS или цифрового маркетолога, стремящегося обеспечить беспрепятственное взаимодействие с клиентами через email-кампании, социальные платформы и результаты поисковых систем.

Схема, показывающая, как универсальные ссылки Apple направляют веб-запросы iOS напрямую в нативные мобильные приложения
Универсальные ссылки Apple проверяют ассоциации доменов, чтобы запускать установленные приложения напрямую, обеспечивая при этом бесшовное переключение на Safari.

Чтобы понять назначение Universal Links, необходимо изучить недостатки устаревших пользовательских схем URL. У пользовательских схем не было централизованного реестра. Любой разработчик мог создать приложение, которое претендовало на схему paypal://, перехватывая конфиденциальные финансовые параметры, предназначенные для законного сервиса, как описано в нашем руководстве по мобильным схемам URL. Более того, если пользователь без приложения нажимал на ссылку пользовательской схемы в Safari, iOS отображала строгую системную ошибку: "Safari не может открыть страницу, потому что адрес недействителен."

Apple разработала универсальные ссылки для установления трёх важных рабочих стандартов:

  • Уникальность и безопасность: Поскольку Universal Links используют стандартные веб-домены (например, https://dslink.me/path), ни один другой разработчик не может претендовать на вашу ссылку, если только он не имеет контроля над вашими проверенными записями DNS и SSL-сертификатами.
  • Беспрепятственный резерв: Если у пользователя iPhone не установлено ваше приложение, точно такой же URL автоматически открывает ваш мобильный сайт в Safari. Нет сломанных ссылок и сообщений об ошибках.
  • Единая идентичность: Маркетологам и разработчикам нужно лишь поделиться одной URL-ссылкой, которая обслуживает как посетителей веб-сайта на настольных компьютерах, так и пользователей нативного приложения на мобильных устройствах.

Этот дизайн также решает проблемы, когда ссылка открывается в Safari вместо приложения из-за нарушенных передач протокола.

Архитектура Apple App Site Association (AASA)

Операционной основой Universal Links является безопасное рукопожатие между операционной системой Apple и вашим веб-сервером. Это рукопожатие осуществляется через файл Apple App Site Association (AASA), документ JSON, размещённый по адресу:

https://yourdomain.com/.well-known/apple-app-site-association

Этот файл определяет, какие идентификаторы приложений разрешены для обработки определённых URL-путей на вашем домене. Вот пример современного форматирования JSON для AASA:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID1234.com.example.myapp",
        "paths": ["/video/*", "/product/*", "/user/*"],
        "components": [
          {
            "/": "/video/*",
            "comment": "Matches all video detail pages"
          }
        ]
      }
    ]
  }
}

Ключевые технические правила хостинга применяются к файлу AASA:

  • Он должен обслуживаться по HTTPS с доверенным SSL-сертификатом.
  • Он должен возвращать Content-Type со значением application/json.
  • Он должен возвращать статус-код HTTP 200 OK без каких-либо перенаправлений с HTTP на HTTPS.
  • Apple кэширует этот файл в своей сети доставки контента (CDN); изменения, внесённые на вашем сервере, могут потребовать некоторое время, чтобы распространиться на все устройства iOS.

Создайте умную глубокую ссылку за секунды

Перестаньте терять мобильных посетителей из-за неудобных экранов входа в приложении. Используйте DSLink для создания чистых глубоких ссылок, открывающих приложение, с аналитикой в реальном времени.

Open Universal Links vs schemes guide

Понимание архитектурных различий между Universal Links и пользовательскими схемами помогает разработчикам создавать надежные кроссплатформенные системы маршрутизации, как показано в нашем сравнении Universal Links и URL-схем:

Функция Apple Universal Links Пользовательские URI-схемы
Формат URL Стандартный HTTPS (https://brand.com) Проприетарный протокол (brand://)
Безопасность и владение Проверено через DNS и JSON AASA Непроверенный; подвержен захвату схемы
Обработка резервного варианта Загружает веб-сайт в Safari плавно Отображает ошибку «Safari не может открыть страницу»
Поведение подсказки Открывает приложение сразу, без каких-либо запросов Часто вызывает системные диалоги «Открыть в приложении?»
Поддержка встроенного браузера Часто ограничивается социальными веб-просмотрами Может быть вызвано через перенаправления JavaScript

Хотя универсальные ссылки превосходят по безопасности и удобству использования, пользовательские схемы все еще часто поддерживаются в качестве резервных вариантов при работе с упертыми встроенными браузерами социальных сетей, подробно описанными в нашем руководстве по навигации во встроенных браузерах.

Когда пользователь iPhone нажимает на ссылку в Apple Mail, Сообщениях или стороннем приложении, iOS выполняет точный рабочий процесс принятия решений:

  1. Проверка локальной базы данных: iOS проверяет свою локальную индексированную базу данных проверенных доменов, сохраненных во время установки приложения.
  2. Оценка пути: Если домен совпадает, iOS оценивает, соответствует ли путь URL шаблонам, определённым в документе AASA.
  3. Проверка предпочтений пользователя: iOS проверяет, переключал ли пользователь ранее настройки Safari, нажав кнопку с хлебными крошками домена в правом верхнем углу.
  4. Нативная передача: Если все проверки пройдены, iOS запускает нативное приложение и передает объект NSUserActivity, содержащий нажатый URL, делегату приложения или обработчику жизненного цикла SwiftUI.
  5. Альтернатива для Safari: Если приложение отсутствует, путь не совпадает или домен не подтверждён, iOS запускает Safari и загружает веб-страницу обычным образом.

Разработчики могут тестировать эти переходы маршрутизации с помощью нашего интерактивного инструмента проверки ссылок, чтобы проверить коды ответов и сопоставления доменов.

Чтобы обеспечить безупречную маршрутизацию Universal Link во всех ваших маркетинговых кампаниях и инфраструктуре для разработчиков, придерживайтесь этих проверенных на практике лучших методов:

  • Никогда не оборачивайте универсальные ссылки в стандартные редиректы: Если ссылка проходит через обычный 301/302 редирект на несвязанном домене, iOS разрывает цепочку и открывает клик в Safari. Узнайте больше в нашем руководстве по глубокой ссылке и сокращателю URL.
  • Учитывайте социальные встроенные браузеры в приложениях: Приложения, такие как Instagram, TikTok и Facebook, фиксируют клики внутри изолированных веб-просмотров. Используйте умные глубокие ссылки с поддержкой DSLink, которые обнаруживают веб-просмотр и запускают обмен намерениями для выхода.
  • Поддержка универсальных путей контента: Убедитесь, что ваше нативное мобильное приложение и ваш веб-сервер используют согласованные пути маршрутизации URL (например, /item/123 ведет к одному и тому же продукту как в вебе, так и в приложении).
  • Постоянно проверяйте синтаксис AASA: Используйте инструмент проверки App Search API от Apple, чтобы убедиться, что ваш файл AASA остаётся действительным, не повреждённым и правильно отформатированным после каждого развертывания сервера.

Освоив универсальные ссылки Apple и сочетая их с многофункциональной умной маршрутизацией, вы обеспечиваете беспрепятственный мобильный опыт, который удерживает ваших пользователей вовлечёнными в ваше нативное программное обеспечение.

Часто задаваемые вопросы

Что такое универсальная ссылка в iOS?

Универсальная ссылка — это стандартный веб-адрес HTTPS, который iOS от Apple распознает как связанный с установленным приложением, позволяя операционной системе напрямую открывать нативное приложение вместо загрузки Safari.

Как Apple проверяет, что приложение владеет доменом?

Apple проверяет владение через JSON-файл apple-app-site-association (AASA), размещённый на веб-домене. iOS загружает этот файл при установке приложения, чтобы проверить соответствие App ID и пути.

Что произойдет, если пользователь нажмет на универсальную ссылку, но у него не установлено приложение?

Если приложение не установлено, iOS плавно загружает целевую веб-страницу в Safari без отображения каких-либо сообщений об ошибке, предупреждающих диалогов или поврежденных экранов.

Могут ли универсальные ссылки использоваться на устройствах Android?

Нет. Универсальные ссылки — это стандарт Apple для iOS и iPadOS. Android использует аналогичную технологию под названием Android App Links, которая основывается на проверке Digital Asset Links.