travelbrand://酒店/ 123

这是深层链接URI的示例;在哪里告诉我的应用程序,“酒店”一词表示包含酒店的视图控制器?

最佳答案

当有人点击链接并将其路由到您的应用程序中时,系统会调用UIApplicationDelegate中的两种方法之一。

  • 如果应用程序已在运行,则方法为
  • - application:openURL:sourceApplication:annotation:
    其中url参数是将用户带到此处的NSURL
  • 如果应用是冷启动的,则方法为
  • - application:didFinishLaunchingWithOptions:
    并且launchOptions参数将包含一个名为UIApplicationLaunchOptionsURLKey的键,其值将是用于启动该应用程序的NSURL

    无论哪种情况,您最终都会得到一个NSURL,您可以通过获取absoluteString并对其进行字符串操作来手动解析,也可以使用NSURLComponents之类的东西进行解析。

    您的网址的NSURLComponents解决方案可能类似于:
    NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
    NSString *scheme = components.scheme; // travelbrand
    NSString *host = components.host; // hotel
    NSString *path = components.path; // /123
    

    10-08 12:35