Deep linking позволяет пользователям переходить напрямую на конкретные экраны в твоем приложении через URLs. Есть два основных подхода: Custom URL Schemes и Universal Links.
myapp://profile/123) просто настраиваются, но могут быть заявлены любым приложениемhttps://myapp.com/profile/123) предпочтительны, так как они проверяют владение доменом через файл apple-app-site-association, размещённый на твоём сервереЗарегистрируй свою scheme или associated domain в Info.plist или в entitlements проекта, а затем обработай входящий URL в AppDelegate или SceneDelegate:
func application(_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
return DeepLinkRouter.handle(url)
}
Для Universal Links используй:
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: ...) -> Bool {
guard let url = userActivity.webpageURL else { return false }
return DeepLinkRouter.handle(url)
}
DeepLinkRouter, чтобы код оставался поддерживаемымUniversal Links предпочтительнее custom URL schemes, потому что они проверяют владение доменом через файл apple-app-site-association, обеспечивая лучшую безопасность и предотвращая hijacking URL schemes другими приложениями.
Новый — ещё не проверен сообществом
Вы