深度 link URI 如何在 iOS 上工作?

How does deep link URI works on iOS?

旅游品牌://hotel/123

这是一个深度 link URI 的例子;在哪里告诉我的应用 "hotel" 一词表示包含酒店的视图控制器?

当有人点击 link 并且 OS 将其路由到您的应用程序时,将调用 UIApplicationDelegate 中的两个方法之一。

  1. 如果应用程序已经是 运行,则方法将是

- application:openURL:sourceApplication:annotation:

其中 url 参数将是将用户带到那里的 NSURL

  1. 如果应用是冷启动的,则方法为

- application:didFinishLaunchingWithOptions:

launchOptions 参数将包含一个名为 UIApplicationLaunchOptionsURLKey 的键,其值将是用于启动应用程序的 NSURL

在任何一种情况下,您最终都会得到一个 NSURL,您可以通过获取 absoluteString 并对其进行字符串操作来手动解析它,或者使用 NSURLComponents 之类的东西.

NSURLComponents 解决方案 URL 可能如下所示:

NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
NSString *scheme = components.scheme; // travelbrand
NSString *host = components.host; // hotel
NSString *path = components.path; // /123