【问题标题】:iphone: can i detect a url type?iphone:我可以检测 url 类型吗?
【发布时间】:2023-03-12 04:32:01
【问题描述】:

我目前正在为 iphone 创建一个 twitter 客户端。

基本上,我要处理三种 url 类型:

  • 标准网址(例如http://www.msn.com
  • YouTube 网址
  • URL 包含指向流的链接。

当用户点击链接时.. 我不想启动 web 视图并让 webview 决定是否加载 quicktime 播放器和 youtube 播放器,而是希望能够在应用程序中处理它。

即我如何编写类似的代码:

检查链接 如果链接 = link.youtube 那么 加载 youtube 播放器 如果链接 = link.mp3 流然后 加载快速播放器 别的 在网页视图中加载

【问题讨论】:

    标签: iphone url uiwebview


    【解决方案1】:

    检查youtube很容易,你可以像检查域一样

    [NSString rangeOfSubstring:@"youtube.com"].location != NSNotFound
    

    mp3 流并不难,您可以通过获取最后一个“.”来检查最后一个扩展名。然后再次检查它的视频流格式集,如:

    NSArray *possibleExtensions = [url componentsSeparatedByString:@"."];
    NSString *extension = [possibleExtensions objectAtIndex:([possibleExtensions count] - 1)];  
    NSSet *extensionSet = [NSSet setWithObjects: @"mp4", @"mov", @"m4v", @"mpv", @"3gp", nil];    
    BOOL isStream = [extensionSet containsObject:extension];
    

    如果要检查链接是否正常,可以使用正则表达式:

      NSString *regrexUrl = @"\\b((?:[\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|(?:[^\\p{Punct}\\s]|/)))";
      // Based on http://daringfireball.net/2009/11/liberal_regex_for_matching_urls
    
      NSString *urlString = [YOUR_STRING_HERE stringByMatching:NCPARSER_REGEX_URL capture:1];
      if (urlString) {
        NSLog(@"It is an url");
      }
    

    【讨论】:

    猜你喜欢
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多