Webview / Webkit无法按预期工作

时间:2015-03-24 00:26:49

标签: objective-c cocoa webview youtube webkit

这是我第一次在这里发帖。所以请耐心等待。我正在使用Webkit在Webview中显示来自YouTube的一些内容。

背景

  • OS: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

    }
}

2 个答案:

答案 0 :(得分:0)

只需使用他们的youtube播放器框架。他们有豆荚。

  

pod'YouTubePlayer'

你只需要加载,播放,停止,清除。你的工作已经完成

答案 1 :(得分:0)

对于使用较新WebKit API(WKWebView)的用户,请在此处查看我的答案:WKWebView Mac Browser Enable fullscreen html5?,以启用HTML5内容的全屏显示