【问题标题】:objective c - How to tell if an NSURL is formatted as a phone number目标 c - 如何判断 NSURL 是否被格式化为电话号码
【发布时间】:2015-05-21 18:16:42
【问题描述】:

我有一个带有 UITextView 的 iOS 应用程序,它可以自动检测链接和电话号码。我想要做的是在点击链接时拦截:

-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange

然后我需要检查 URL 是网页链接还是电话号码。

有人知道怎么做吗?我能想到的唯一方法是将其转换为字符串并检查它是否以 @"tel" 开头,但必须有更好的方法。谢谢!

【问题讨论】:

    标签: ios objective-c validation nsurl phone-number


    【解决方案1】:

    有更好的方法。

    一个NSURL对象有一个scheme的属性,它会识别它是什么类型的URL。

    if ([URL.scheme isEqualToString:@"tel"]) {
         // handle telephone case here
    } else {
        // handle http or other case here
    }
    

    文档说该方案在大多数情况下可以被视为协议:

    注意

    在谈论基于网络的 URL 方案时,有时也会使用术语“协议”。但是,并非所有 URL 方案都是网络协议——例如 data:// URL。

    查看 NSURL 文档的这一部分,了解有关如何拆分 URL 以使用所需部分的更多信息: Accessing the Parts of the URL(截至 2015 年 5 月 21 日的有效链接)

    【讨论】:

    • 我添加了一些附加信息和文档链接,以供参考。如果您需要更多帮助,或者此答案不是您想要的,请告诉我。
    • 谢谢,这正是我想要的!
    猜你喜欢
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    相关资源
    最近更新 更多