所以我有一个用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开发者来说必须如此简单吗?我觉得很蠢。
答案 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向您展示了它的工作原理。