【发布时间】:2015-05-27 04:32:27
【问题描述】:
这是我第一次在这里发帖。所以请多多包涵。我正在使用 Webkit 在 web 视图中显示来自 YouTube 的一些内容。
背景
- 操作系统:OS X 10.10.2
- SDK:OS X 10.10
问题
正如我之前所说,我使用 WebView 来显示来自 YouTube 的内容。但是,我遇到了一些我在下面概述的问题
当尝试使用 YouTube 的全屏操作时,会发生以下情况:
测试一(使用 Flash):
观察:
我做错了什么:当我尝试在 YouTube 网站上使用 Flash 播放器播放视频时,一切正常。 此外,当我单击 YouTube 视频的全屏按钮时,窗口确实以全屏显示。但是,它不是完全全屏的(菜单栏仍然可见)
我的预期:我预期视频会完全进入全屏模式。在 Safari 中一切正常。
测试二(使用 HTML5):
观察:
我做了什么:当我尝试在 YouTube 网站上使用 HTML5 播放器播放视频时,一切正常。但是,当我点击 YouTube 视频的全屏按钮时,什么也没发生。
我的预期:我预期视频会进入全屏模式。我确实注意到在 Safari 中执行此操作时一切正常。
有人可以帮我解决这个问题吗?我到处找,一无所获。
这是我为说明此问题所做的测试应用示例:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
NSURL *url = [NSURL URLWithString:@"https://www.youtube.com"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[[[self webView] mainFrame] loadRequest:urlRequest];
[self.window setContentView:self.webView];
//When YES WebView will use Flash if available, else will use HTML5
BOOL shouldUsePlugin = YES;
if (shouldUsePlugin == YES) {
[[[self webView] preferences] setPlugInsEnabled:YES];
//Test 1: Using Flash
} else {
[[[self webView]preferences]setPlugInsEnabled:NO];
//Test 2: Using HTML5
}
}
【问题讨论】:
-
不幸的是,我没有解决这个特定问题的方法,但我从经验中知道“旧”WebView 类在 Web 插件(包括 Flash)方面存在重大问题。以下是我为 Apple 提供的两个重现案例,它们表明插件无法使用 WebView 正常工作:github.com/lemonmojo/WebViewPluginTestgithub.com/lemonmojo/WebViewJavaTest 现在我对您的建议是迁移到新的 WKWebView (developer.apple.com/library/ios/documentation/WebKit/Reference/…),它可以更好地处理插件并且通常更适合未来。
标签: objective-c cocoa webview youtube webkit