我在 iOS6 应用程序中嵌入 Youtube 视频时遇到问题。
问题是,每当我创建一个使用旧/或新嵌入代码的 html 元素时,它都会打开 Safari 并显示视频
我使用 Youtube API 来获取视频,并使用 PhoneGap
更新 解决方案是在Phonegap设置中将OpenAllWhitelistURLsInWebView设置为YES
我在 iOS6 应用程序中嵌入 Youtube 视频时遇到问题。
问题是,每当我创建一个使用旧/或新嵌入代码的 html 元素时,它都会打开 Safari 并显示视频
我使用 Youtube API 来获取视频,并使用 PhoneGap
更新 解决方案是在Phonegap设置中将OpenAllWhitelistURLsInWebView设置为YES
您可以使用UIWebview
加载视频而不是 Safari。
这是一个示例代码
CGRect rect = [[UIScreen mainScreen] bounds];
CGSize screenSize = rect.size;
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)];
webView.autoresizesSubviews = YES;
webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
NSString *videoUrl = @"http://www.youtube.com/v/oHg5SJYRHA0";
NSString *htmlString = [NSString stringWithFormat:@"<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=\"320\" height=\"480\"><param name=\"movie\" value=\"%@\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"%@\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"320\" height=\"480\"></embed></object></div></body></html>",videoUrl,videoUrl] ;
[webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];
[window addSubview:webView];
[webView release];
如果您正在谈论一个真正的应用程序(对此一无所知),
但如果它是一个 WEBAPP(一个试图看起来像一个真正的应用程序的普通网页),
那么我发现防止 youtube 视频在 Safari 中打开的唯一方法/Qt-player
是使用“Fancybox”嵌入它(也可能是其他盒子)。
这会将其保留在 Youtube 自己的播放器的页面上。
你甚至可以拥有一个原创的播放列表播放器。
我不再尝试在 iPhone 页面上嵌入 youtube 视频(很小)
我试图包含一个指向 jSfiddle-example 的链接,但是这个论坛不会接受它,它迫使我在这里写整个例子......我不会这样做,因为这对我来说现在有很多工作。
(不知道其他人是如何被允许链接到 jSfiddle 的)
这个论坛是我喜欢的方式。
无论如何,您应该能够(如果是网络应用程序)在 Fancybox 的网站上找到信息。