Skip to content

Latest commit

 

History

History
69 lines (45 loc) · 4.02 KB

4.2.2.2 Deeplink.md

File metadata and controls

69 lines (45 loc) · 4.02 KB

Deeplink

Deeplink — ссылка, которая служит навигацией внутри приложения/веб-сайта: ссылка непосредственно на содержимое продукта, а не на домашнюю страницу.

deeplink Facebook

URL-адрес fb:// должен бы открыть приложение Facebook, но fb://profile/33138223345 открывает профиль Википедии в приложении Facebook.

P.S.: работает только на macOS

Данная ссылка открывает бинарный файл приложения AddressBookUrlForwarder.app, которое используется для извлечения контактных данных Facebook и Twitter для отображения в адресной книге.5

Также приложение является обработчиком URL для этих выражений strings /System/Library/CoreServices/AddressBookUrlForwarder.app/Contents/MacOS/AddressBookUrlForwarder:

fb://profile/(.*)
http://www.facebook.com/profile.php?id=$1
twitter:///user[?]screen_name=(.+)
http://twitter.com/$1
twitter:///post[?]message=(.+)
http://twitter.com/share?text=$1

Именно из-за обработки deeplink приложением AddressBookUrlForwarder редирект работает из коробки на MacOS. В наши собственные приложения необходимо самостоятельно конфигурировать deeplink.

Обработка deeplink внутри iOS приложения

Внутри приложения deeplink можно обрабатывать, реализуя специальный метод UIApplicationDelegate делегата приложения:

// ⭐️ - 9.2) deeplink (Пример: hrplatform:///platform/support/pages/profile/7905)
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool

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

AppMethodLifeCycleWithUniversalLink

iOS вызовет 9.2 метод и описанную реализацию дальнейшего потока приложения при нажатии Deeplink служит навигации внутри приложения: из историй/предложений банка/умного поиска/виджетов на экранах/по кнопкам и другим элементам.

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.1 Router vs Coordinator Theme | Back To iOSWiki Contents | 4.2.2.3 Universal Link Theme