2012-04-20 64 views
2

打開YouTube應用程序,我使用的是iOS科爾多瓦/ PhoneGap的框架,它顯示了一些HTML,有一些嵌入式YouTube播放器代碼,它建立一個應用程序在Xcode。 iOS似乎將用戶重定向到youtube應用,當它遇到這個youtube播放器時。在cordova 1.5.0下面的代碼工作,但在1.6.1似乎並不。任何想法爲什麼或需要改變以使其發揮作用?停止YouTube視頻在Xcode /科爾多瓦1.6.1

代碼停止YouTube的開放和鏈接行爲的自我

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *url = [request URL]; 

    // Intercept the external http requests and forward to Safari.app 
    // Otherwise forward to the PhoneGap WebView 

    NSString* urlString = [url absoluteString]; 
    if([urlString rangeOfString:@"http://www.youtube.com/embed"].location != NSNotFound) { 
     return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; 
    } 
    else if (([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"])) { 
     [[UIApplication sharedApplication] openURL:url]; 
     return NO; 
    } 
    else { 
     return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; 
    } 
} 

回答

0

我會把在方法的開始登錄的網址,然後日誌語句的每個子句中,如果/ ELSEIF /別人,所以你可以看到什麼樣的網址被攔截,以及每個網頁的處理方法。

也許對YouTube的請求字符串不匹配的硬編碼「http://www.youtube.com/embed」了嗎?值得一看。

0

看看http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html 這可能幫助。

它說,要做到這一點:

NSString *htmlString = @"<html><head> 
<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head> 
<body style=\"background:#F00;margin-top:0px;margin-left:0px\"> 
<div><object width=\"212\" height=\"172\"> 
<param name=\"movie\" value=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param> 
<param name=\"wmode\" value=\"transparent\"></param> 
<embed src=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\" 
type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"212\" height=\"172\"></embed> 
</object></div></body></html>"; 

[webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.your-url.com"]];