我有一个用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条答案
按热度按时间ttcibm8c1#
我建议使用这个名为DeepLinkKit HERE IS THE SOURCE CODE的cocopods软件包
pod "DeepLinkKit"
您可以简单路由并进行错误处理:
Here is a good tutorial向您深入展示了它的工作原理。
iyzzxitl2#
Apple不再支持Deep Links,它现在被称为Universal Links,工作方式略有不同。
来源
现在苹果不再支持深度链接的URI方案,开发者必须实现通用链接,以便在iOS上正确地进行深度链接。如果你已经在使用URI方案,请查看我们关于过渡到通用链接的博客。
发件人:HERE
HERE是另一篇关于通用链接及其含义的文章。