ios 在swift中配置深层链接?

yhived7q  于 2022-12-01  发布在  iOS
关注(0)|答案(2)|浏览(122)

我有一个用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开发者来说一定很简单,对吧?我觉得太愚蠢了。

ttcibm8c

ttcibm8c1#

我建议使用这个名为DeepLinkKit HERE IS THE SOURCE CODE的cocopods软件包
pod "DeepLinkKit"
您可以简单路由并进行错误处理:

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

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

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

iyzzxitl

iyzzxitl2#

Apple不再支持Deep Links,它现在被称为Universal Links,工作方式略有不同。

来源

现在苹果不再支持深度链接的URI方案,开发者必须实现通用链接,以便在iOS上正确地进行深度链接。如果你已经在使用URI方案,请查看我们关于过渡到通用链接的博客。
发件人:HERE
HERE是另一篇关于通用链接及其含义的文章。

相关问题