【问题标题】:Xcode - multiple URL SchemesXcode - 多个 URL 方案
【发布时间】:2013-01-10 09:36:55
【问题描述】:

在我的应用程序中,我想要两个不同的 URL 方案。
比如一个两个
所以用户可以通过以下方式打开我的应用程序:
one://something

two://something

我正在使用这个:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
}

应用如何知道用户输入了一个还是两个?

【问题讨论】:

    标签: iphone ios objective-c xcode url-scheme


    【解决方案1】:

    handleOpenURL 已弃用,因此如果您的目标是 iOS 4.2 或更高版本,则应改用 application:openURL:sourceApplication:annotation:

    在这两种情况下,您都会收到一个NSURL,您可以在上面访问the scheme property 以了解用于访问您的应用的方案。

    编辑:为了可读性;在您对application:openURL:sourceApplication:annotation: 的实现中,代码类似于;

    if([[url scheme] caseInsensitiveCompare:@"one"] == NSOrderedSame) 
    { 
        /* one here */ 
    } else { 
        /* not one here */ 
    }
    

    【讨论】:

    • 所以我的代码看起来像这样? : - (BOOL)application:(UIApplication *)application:openURL:sourceApplication:annotation: handleOpenURL:(NSURL *)url { 我不知道,究竟应该如何使用 application:openURL:sourceApplication:annotation:
    • @JonathanGurebo 有点像; if(![[url scheme] caseInsensitiveCompare:@"one"]) { /* one here */ } else { /* not one here */ }
    • @JoachimIsaksson 您应该使用该代码编辑您的答案,以便于阅读。
    • @rmaddy 谢谢,将代码添加到答案中以提高可读性。
    • 因为caseInsensitiveCompare:返回一个枚举值,你应该把它改成if ([[url scheme] caseInsensitiveCompare:@"one"] == NSOrderedSame)
    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 2019-01-29
    • 2015-06-14
    • 2013-09-12
    • 2013-04-12
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多