Webview/Webkit 未按预期工作
Webview/Webkit not working as expected
这是我第一次在这里发帖。所以请多多包涵。我正在使用 Webkit 在网络视图中显示来自 YouTube 的一些内容。
背景
- OS: OS X 10.10.2
- SDK: OS X 10.10
问题
正如我之前所说,我正在使用 WebView 来显示来自 YouTube 的内容。但是,我 运行 遇到了下面概述的一些问题
尝试使用 YouTube 的全屏操作时会发生以下情况:
测试一(使用 Flash):
观察结果:
我做错了什么:当我尝试在 YouTube 网站上使用 Flash 播放器播放视频时,一切正常。
此外,当我点击 YouTube 视频的全屏按钮时,window 确实全屏显示了。但是,它不是完全全屏的(菜单栏仍然可见)
我的预期:我预计视频会完全进入全屏。在 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
}
}
只需使用他们的 youtube 播放器框架。他们为此 pods。
pod 'YouTubePlayer'
你只需要加载、播放、停止、清除。你的工作完成了
对于使用较新 WebKit API (WKWebView
) 的用户,请在此处查看我的回答: 用于在 HTML5 内容上启用全屏
这是我第一次在这里发帖。所以请多多包涵。我正在使用 Webkit 在网络视图中显示来自 YouTube 的一些内容。
背景
- OS: OS X 10.10.2
- SDK: OS X 10.10
问题
正如我之前所说,我正在使用 WebView 来显示来自 YouTube 的内容。但是,我 运行 遇到了下面概述的一些问题
尝试使用 YouTube 的全屏操作时会发生以下情况:
测试一(使用 Flash):
观察结果:
我做错了什么:当我尝试在 YouTube 网站上使用 Flash 播放器播放视频时,一切正常。 此外,当我点击 YouTube 视频的全屏按钮时,window 确实全屏显示了。但是,它不是完全全屏的(菜单栏仍然可见)
我的预期:我预计视频会完全进入全屏。在 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
}
}
只需使用他们的 youtube 播放器框架。他们为此 pods。
pod 'YouTubePlayer'
你只需要加载、播放、停止、清除。你的工作完成了
对于使用较新 WebKit API (WKWebView
) 的用户,请在此处查看我的回答: