停止youtube视频在xcode / cordova 1.6.1中打开youtube应用程序

时间:2012-04-20 20:27:56

标签: ios xcode cordova youtube

我正在使用适用于ios的Cordova / phonegap框架在xcode中构建一个应用程序,它显示了一些嵌入了youtube播放器代码的html。当用户点击这个youtube播放器时,iOS似乎会将用户重定向到youtube应用。在cordova 1.5.0中,以下代码有效,但在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 ];
    }
}

2 个答案:

答案 0 :(得分: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"]];

答案 1 :(得分:0)

我会在方法的开头放入url登录,然后在if / elseif / else的每个子句中放入一个log语句,这样你就可以看到截获的url以及每个url的方法

也许youtube请求的字符串与硬编码的“http://www.youtube.com/embed”不匹配?值得一看。