2010-09-08 20 views
1

我目前正在爲iphone創建一個twitter客戶端。iphone:我可以檢測到一個url類型?

我基本上有三種類型的URL的我想要處理:

當用戶點擊一個鏈接..而不是啓動Web視圖,讓web視圖決定是否加載QuickTime播放器& YouTube播放器,我希望能夠在應用程序中處理它。

即我怎麼可以編寫類似:

檢查鏈接 如果鏈接= link.youtube然後 加載YouTube播放器 如果鏈接= link.mp3流然後 負載QuickTime播放器 其他 負荷的WebView

回答

1

檢查YouTube上很容易,你可以檢查域像

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

mp3流並不難,你可以通過獲取最後一個「。」來檢查最後的擴展名。然後檢查其agains像集視頻流格式:

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"); 
    } 
+0

感謝您的答覆!嗯..但說它是一個YouTube的結果頁面.. http://www.youtube.com/results?search_query=results&aq=f ...不會返回錯誤嗎? – unicornherder 2010-09-08 06:33:43

+0

然後,您可能需要檢測整個子字符串:「http://www.youtube.com/watch」 – vodkhang 2010-09-08 06:46:37