如何处理自定义URL方案以允许将一个应用程序定向到另一个应用程序?例如instagram://user?username=someusername
通过用户名将用户直接指向用户个人资料。我需要创造类似的东西。
我已经检出了application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
和application(_ application: UIApplication, handleOpen url: URL) -> Bool
但是在尝试实施时似乎有一条红线,所以我假设它们已被弃用。此外,当我通过浏览器中的URL打开我的应用程序时,它们似乎无法被调用。
答案 0 :(得分:0)
以此网址为例:appName://?id=12345
使用网址启动后,您可以在应用中执行某些操作
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
if let items = urlComponents?.queryItems as [NSURLQueryItem]?,
(url.scheme == "appName") {
if items.first?.name == "id",
let id = items.first?.value {
print(id) // prints 12345 to console
// do something with the id, possibly present/push a controller for the user
}
}
return false
}
答案 1 :(得分:0)
从iOS 13及更高版本开始,以下功能将不再起作用。
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
iOS 13及更高版本中的更新功能
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
在 SceneDelegate 类中使用此功能。
信用:https://www.swiftdevcenter.com/custom-url-scheme-deep-link-ios-13-and-later-swift-5/
有关更多详情,请关注this tutorial