Ios 自定义URL方案
如何处理自定义URL方案以允许一个应用程序指向另一个应用程序?e、 g.Ios 自定义URL方案,ios,swift,Ios,Swift,如何处理自定义URL方案以允许一个应用程序指向另一个应用程序?e、 g.instagram://user?username=someusername通过用户名将用户直接指向用户配置文件。我需要创造一些类似的东西 我已经签出了application(\uapplication:UIApplication,openurl:url,sourceApplication:String?,annotation:Any)->Bool和application(\uapplication:UIApplicatio
instagram://user?username=someusername
通过用户名将用户直接指向用户配置文件。我需要创造一些类似的东西
我已经签出了
application(\uapplication:UIApplication,openurl:url,sourceApplication:String?,annotation:Any)->Bool
和application(\uapplication:UIApplication,handloopen url:url)->Bool
,但它们在尝试实现时似乎有一条红线,所以我假设它们不推荐使用。此外,当我从浏览器通过url打开应用程序时,它们似乎不会被调用。以此url为例:appName://?id=12345
一旦你的应用程序启动,你可以像这样使用url来做一些事情
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
}
从iOS 13及以上版本开始,以下功能将不再工作
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
更新了iOS 13及以上版本的功能
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>)
func场景(scene:UIScene,openURLContexts:Set)
在SceneDelegate类中使用此函数。信用证:
有关详细信息,请遵循当方法被弃用时,警告通常会告诉您应该使用哪种方法。@EmilioPelaez如果您看到它被弃用,则不会显示任何警告,这可能就是它现在要使用的内容。或者,你也可以在谷歌上搜索这些文档,以获取应用程序。