Skip to content

Latest commit

 

History

History
98 lines (64 loc) · 7.47 KB

4.2.2.3 UniversalLinks.md

File metadata and controls

98 lines (64 loc) · 7.47 KB

Universal Links

  1. Теория Universal Links
  2. Подробная информация об универсальных ссылках в официальной документации Apple

Универсальные ссылки позволяют открывать web-ссылку в мобильном приложении, если оно установлено, а если приложения нет – открывается страница платформы в веб браузере.

Пример: https://<domain.com>/platform/support/pages/profile/7905

В отличие от deeplink, Universal Links открывают ваше приложение напрямую, без запроса у пользователя, создавая более интегрированный и удобный для пользователя опыт.

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

1) Xcode

Связать приложение с доменом (домен может быть как собственный, так и рекламных трекеров) в настройках приложения через XCode;

2) AASA

У iOS есть список Associated Domains всех приложений, которые установлены сейчас на телефоне.

iOS соотносит с каждым appID приложения из этого списка и проверяет, установлено ли приложение или нет:

  • appID присутствует => iOS пытается открыть ее, как универсальную;
  • iOS не нашла ни одного установленного appID - ссылка открывается в Safari;

Если приложение установлено, то далее идет поиск универсальная ссылки по paths, где path одна из paths в apple-app-site-association (AASA):

  • если она начинается с Associated Domains/path - откроется приложение.
  • Если среди paths установленных приложений нет подходящего, то ссылка открывается в Safari.

Файл AASA должен быть размещен в JSON-формате без расширений на сервере вашего веб-сайта с определенным URL-путем. Этот файл должен быть храниться в корневом каталоге домена, доступного по HTTPS, поэтому убедитесь, что на вашем веб-сайте установлен сертификат SSL.

Убедитесь, что файл имеет правильный формат и соответствует спецификациям Apple

Файл должен быть доступен по адресу https://<mydomain>/apple-app-site-association и убедитесь, что тип содержимого файла - application/json. Файл должен иметь следующее содержание:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAM_ID.APP_BUNDLE_ID",
        "paths": [ "/path/to/content/*", "/another/path/*" ]
      }
    ]
  }
}

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

Разметка HTML включает добавление тега ссылки «apple-app-site-association» в раздел заголовка вашего HTML-документа, указывающего на местоположение вашего файла AASA. Кроме того, вам нужно будет добавить метатег «applinks», чтобы указать проверенный домен веб-сайта.

3) Обработка универсальных ссылок внутри iOS приложения

Внутри приложения универсальные ссылки можно обрабатывать, реализуя специальный метод UIApplicationDelegate делегата приложения — application:continueUserActivity:restorationHandler:.

// ⭐️ - 8.1) universal link (Пример: https://...)
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool 

На рисунке это 8.1 метод:

AppMethodLifeCycleWithUniversalLink

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

Deeplink vs Universal Links

  1. Установка приложения
  • Универсальные ссылки устраняют необходимость установки приложения и предлагают более плавный путь;
  • Deeplink не будут работать без предустановленного приложения;
  1. Разные методы внутри UIApplicationDelegate
  • Универсальные ссылки - application:continueUserActivity:restorationHandler: метод;
  • Deeplink - open url: URL метод;
  1. Поиск в Xcode
  • Универсальные ссылки - Scheme - Signing & Capabilities - Associated Domains - applinks:...;
  • Deeplink - Scheme - Info - URL Types - URL schemes;
  1. Безопасность
  • Универсальные ссылки - имеют SSL сертификат;
  • Deeplink - не имеют

4.2.2.2 DeepLink Theme | Back To iOSWiki Contents | 4.2.3 Persistance Theme Folder