iphone: я могу определить тип URL? - PullRequest
1 голос
/ 08 сентября 2010

Я сейчас создаю твиттер-клиент для iphone.

В основном у меня есть три типа URL, которые я хочу обработать:

  • Стандартные URL (например, http://www.msn.com)
  • URL-адреса YouTube
  • URL содержит ссылки на поток.

Когда пользователь щелкает ссылку ... вместо того, чтобы запускать веб-просмотр и разрешать веб-просмотру решать, загружать ли QuickTime Player и YouTube Player, я хочу иметь возможностьобрабатывать это в приложении.

то есть, как я могу написать что-то вроде:

проверить ссылку, если link = link.youtube, затем загрузить проигрыватель YouTube, если поток link = link.mp3, а затем загрузить QuickTime Playerзагрузить в webview

1 Ответ

1 голос
/ 08 сентября 2010

Проверить 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");
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...