Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义URL方案_Ios_Swift - Fatal编程技术网

Ios 自定义URL方案

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

如何处理自定义URL方案以允许一个应用程序指向另一个应用程序?e、 g.
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如果您看到它被弃用,则不会显示任何警告,这可能就是它现在要使用的内容。或者,你也可以在谷歌上搜索这些文档,以获取应用程序。