До iOS 9 переход между мобильными сайтами и нативными приложениями iPhone был непредсказуемым и неуклюжим. Разработчики полагались на пользовательские URI-протоколы, такие как instagram:// или mybank://. Эти схемы часто вызывали раздражающие системные предупреждения с вопросом «Открыть в приложении?», полностью переставали работать, если приложение отсутствовало, и имели серьезные уязвимости в области безопасности. Чтобы устранить эти фундаментальные недостатки, Apple представила Universal Links. Но что такое универсальная ссылка и почему она изменила архитектуру мобильного программного обеспечения?
В своей основе, Universal Link — это стандартный, безопасный HTTPS веб-URL, который бесшовно направляет к конкретным контроллерам представлений внутри установленного iOS-приложения. Если приложение установлено, iOS запускает его мгновенно без открытия Safari. Если приложение отсутствует, операционная система аккуратно загружает адаптивную веб-страницу в Safari без отображения диалогов с ошибками. В этом техническом исследовании мы рассматриваем внутренние механизмы работы Apple Universal Links, изучаем конфигурационный файл AASA и объясняем, почему современная мобильная маршрутизация зависит от этого протокола.
Понимание универсальных ссылок имеет ключевое значение для любого инженера iOS или цифрового маркетолога, стремящегося обеспечить беспрепятственное взаимодействие с клиентами через email-кампании, социальные платформы и результаты поисковых систем.
Что такое Universal Link и почему Apple его создала
Чтобы понять назначение 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Универсальные ссылки против пользовательских схем URL
Понимание архитектурных различий между Universal Links и пользовательскими схемами помогает разработчикам создавать надежные кроссплатформенные системы маршрутизации, как показано в нашем сравнении Universal Links и URL-схем:
| Функция | Apple Universal Links | Пользовательские URI-схемы |
|---|---|---|
| Формат URL | Стандартный HTTPS (https://brand.com) |
Проприетарный протокол (brand://) |
| Безопасность и владение | Проверено через DNS и JSON AASA | Непроверенный; подвержен захвату схемы |
| Обработка резервного варианта | Загружает веб-сайт в Safari плавно | Отображает ошибку «Safari не может открыть страницу» |
| Поведение подсказки | Открывает приложение сразу, без каких-либо запросов | Часто вызывает системные диалоги «Открыть в приложении?» |
| Поддержка встроенного браузера | Часто ограничивается социальными веб-просмотрами | Может быть вызвано через перенаправления JavaScript |
Хотя универсальные ссылки превосходят по безопасности и удобству использования, пользовательские схемы все еще часто поддерживаются в качестве резервных вариантов при работе с упертыми встроенными браузерами социальных сетей, подробно описанными в нашем руководстве по навигации во встроенных браузерах.
Как iOS обрабатывает универсальные ссылки во время выполнения
Когда пользователь iPhone нажимает на ссылку в Apple Mail, Сообщениях или стороннем приложении, iOS выполняет точный рабочий процесс принятия решений:
- Проверка локальной базы данных: iOS проверяет свою локальную индексированную базу данных проверенных доменов, сохраненных во время установки приложения.
- Оценка пути: Если домен совпадает, iOS оценивает, соответствует ли путь URL шаблонам, определённым в документе AASA.
- Проверка предпочтений пользователя: iOS проверяет, переключал ли пользователь ранее настройки Safari, нажав кнопку с хлебными крошками домена в правом верхнем углу.
- Нативная передача: Если все проверки пройдены, iOS запускает нативное приложение и передает объект
NSUserActivity, содержащий нажатый URL, делегату приложения или обработчику жизненного цикла SwiftUI. - Альтернатива для 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.