在swift中配置深层链接?

Isa*_*man 5 deep-linking ios appdelegate 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
}
Run Code Online (Sandbox Code Playgroud)

然后打印出一切appname://.但是我怎样才能url.host将我的视图控制器解析为我需要的信息.如果URL的声明在该函数之外,那么我可以使用:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let InfoFromDeepLink = appDelegate.url.host
Run Code Online (Sandbox Code Playgroud)

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

iSk*_*ore 0

我建议使用名为DeepLinkKit 的 cocoapods 包,这是源代码

\n\n

pod "DeepLinkKit"

\n\n

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

\n\n\n\n
// Matches the URL.\nrouter[@"timeline"] = ^{ \xe2\x80\xa6 }\n\n// Does not match the URL.\nrouter[@"/timeline"] = ^{ \xe2\x80\xa6 }\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是一个很好的教程,深入向您展示了它是如何工作的。

\n