在swift中配置深层链接?

时间:2015-05-20 01:19:18

标签: ios swift appdelegate deep-linking

所以我有一个用swift编写的应用程序,我想使用深层链接。用户将点击URL路线中具有不同信息的信息,例如帖子的id或其拥有的喜欢的数量或类似的信息。我知道你把它放在AppDelegate中:

func application(application: UIApplication,openURL url: NSURL,sourceApplication sourceApplication: String?,annotation annotation: AnyObject?) -> Bool {
    println(url.host as String!)
    return true
}

然后打印appname://之后的所有内容。但是如何让我的视图控制器url.host被解析为我需要的信息。如果URL的声明在该函数之外,那么我可以使用它:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let InfoFromDeepLink = appDelegate.url.host

但是因为它在那个庞大的Objective-C功能里面,我很无奈。你怎么做到这一点?我完全不知所措。我甚至无法将功能设置为return url.host,因为它不允许这样做。这就是我在Javascript中所做的。如果您也知道Javascript可能会以Web开发人员理解的术语来表达,因为我对此非常陌生。这对于Swift开发者来说必须如此简单吗?我觉得很蠢。

2 个答案:

答案 0 :(得分:1)

Apple不再支持Deep Links。它现在被称为通用链接,并且工作方式略有不同。

<强>来源

  

现在Apple不再支持深层链接的URI方案,开发人员必须实现Universal Links才能在iOS上正确地进行深层链接。如果您已经在使用URI方案,请查看我们关于过渡到Universal Links的博客。

来自:HERE

HERE是关于Universal Links的另一篇文章及其内容。

答案 1 :(得分:0)

我建议使用名为DeepLinkKit HERE IS THE SOURCE CODE

的cocoapods软件包

pod "DeepLinkKit"

您可以简单地路由并进行错误处理:

// Matches the URL.
router[@"timeline"] = ^{ … }

// Does not match the URL.
router[@"/timeline"] = ^{ … }

Here is a good tutorial向您展示了它的工作原理。