Youtube iOS6使用webView播放视频(适用于iOS5)

Youtube iOS6使用webView播放视频(适用于iOS5),youtube,ios6,Youtube,Ios6,我曾经使用UIWebView在iOS应用程序中播放视频,代码如下: NSString *embedHTML = @"\ <html><head>\ <style type=\"text/css\">\ body {\ background-color: transparent;\ color: white;\ }\ </style>\ </head><body style=\"margin:0\">\ <embed i

我曾经使用UIWebView在iOS应用程序中播放视频,代码如下:

NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";

NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width, frame.size.height];
self.videoView = [[UIWebView alloc] initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.videoView setDelegate:self];
[self.view addSubview:videoView];
[videoView release];
NSString*embedHTML=@”\
\
\
身体{\
背景色:透明\
颜色:白色\
}\
\
\
\
";
NSString*html=[NSString stringWithFormat:embedHTML,urlToOpen,frame.size.width,frame.size.height];
self.videoView=[[UIWebView alloc]initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.videoView setDelegate:self];
[self.view addSubview:videoView];
[视频视图发布];
对于iOS6,它不起作用

有人找到了用iOS6播放youtube视频的解决方案吗


谢谢

好的,这是答案

使用

而不是

在这里找到它:


我刚刚用iOS6模拟器和iOS5设备进行了测试,如果您使用新的嵌入代码(iframe),那么它就可以工作了

<iframe class="youtube-player" type="text/html" width="320" height="200" src="http://www.youtube.com/embed/VIDEOID" frameborder="0"></iframe>


唯一的缺点是iframe包含大量下载的dom元素。

用以下代码替换您的代码

   NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;\
    color: white;\
    }\
    </style>\
    </head><body style=\"margin:0\">\
    <iframe title=\"YouTube Video\" class=\"youtube-player\" type=\"text/html\"\
    width=\"%0.0f\" height=\"%0.0f\" src=\"%@\"\
    frameborder=\"0\" allowFullScreen ></iframe>";
    NSString *urlToOpen = @"http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1";
    NSString *html = [NSString stringWithFormat:embedHTML, urlToOpen, frame.size.width,     frame.size.height];
    self.videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.videoView setDelegate:self];
    [self.view addSubview:videoView];
    [videoView release];
NSString*embedHTML=@”\
\
\
身体{\
背景色:透明\
颜色:白色\
}\
\
\
";
NSString*urlToOpen=@”http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1";
NSString*html=[NSString stringWithFormat:embedHTML,urlToOpen,frame.size.width,frame.size.height];
self.videoView=[[UIWebView alloc]initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.videoView setDelegate:self];
[self.view addSubview:videoView];
[视频视图发布];
由于Youtube已经放弃了webview视频并引入了iframe,因此对于ios 6,您必须使用此html,对于ios 5,则必须使用旧的html。 请记住,youtube视频的url链接是
您可以将视频Id替换为自己的视频Id。

如果您使用嵌入的Phonegap,您已经在Phonegap设置中将OpenAllWhitelistURLsInWebView设置为“是”

Youtube with iOS6中的网络视图需要在网络视图中启用Cookie。为此,需要在AppDelegate中添加以下指令:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
      ...
}

我在模拟器里试过这个

[_webview加载请求:[NSURLRequest requestWithURL:[NSURL URLWithString:@”“]]

它是有效的

直接将youtube视频的嵌入src提供给web视图,它可以正常工作

<iframe class="youtube-player" type="text/html" width="320" height="200" src="http://www.youtube.com/embed/VIDEOID" frameborder="0"></iframe>