Deeplink — ссылка, которая служит навигацией внутри приложения/веб-сайта: ссылка непосредственно на содержимое продукта, а не на домашнюю страницу.
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
можно обрабатывать, реализуя специальный метод UIApplicationDelegate делегата приложения:
// ⭐️ - 9.2) deeplink (Пример: hrplatform:///platform/support/pages/profile/7905)
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool
На рисунке это 9.2 метод:
iOS вызовет 9.2 метод и описанную реализацию дальнейшего потока приложения при нажатии Deeplink служит навигации внутри приложения: из историй/предложений банка/умного поиска/виджетов на экранах/по кнопкам и другим элементам.
Deeplink vs Universal Links
- Установка приложения
- Универсальные ссылки устраняют необходимость установки приложения и предлагают более плавный путь;
- Deeplink не будут работать без предустановленного приложения
- Разные методы внутри UIApplicationDelegate
- Универсальные ссылки -
application:continueUserActivity:restorationHandler:
метод; - Deeplink -
open url: URL
метод;
- Поиск в Xcode
- Универсальные ссылки - Scheme - Signing & Capabilities - Associated Domains - applinks:...;
- Deeplink - Scheme - Info - URL Types - URL schemes;
- Безопасность
- Универсальные ссылки - имеют SSL сертификат;
- Deeplink - не имеют
4.2.2.1 Router vs Coordinator Theme | Back To iOSWiki Contents | 4.2.2.3 Universal Link Theme