Cocoa:点击WebView内的“在YouTube上观看”不会做任何事情

时间:2012-01-20 20:29:25

标签: cocoa webkit webview youtube

我有一个WebView,其中包含嵌入的YouTube视频。除了点击“在Youtube上观看”外,视频播放效果一切正常。

我希望“在YouTube上观看”按钮在默认浏览器上打开YouTube视频,但目前它没有做任何事情。

我在WebPolicyDelegate上设置了WebView,但都没有:

- (void)webView:(WebView *)webView 
   decidePolicyForNavigationAction:(NSDictionary *)actionInformation
        request:(NSURLRequest *)request
          frame:(WebFrame *)frame
decisionListener:(id<WebPolicyDecisionListener>)listener`

也不:

- (void)webView:(WebView *)webView 
decidePolicyForNewWindowAction:(NSDictionary *)actionInformation
        request:(NSURLRequest *)request
   newFrameName:(NSString *)frameName
decisionListener:(id<WebPolicyDecisionListener>)listener

在点击“在YouTube上观看”按钮时调用。

我如何检测到点击了“在YouTube上观看”按钮,以便我可以在默认浏览器上打开它?

1 个答案:

答案 0 :(得分:1)

“在YouTube上观看”按钮会在新标签/窗口中执行导航,因此您需要实施WebUIDelegate的{​​{1}}方法。您必须从请求的网址推断该请求是否是由“在YouTube上观看”按钮发起的。一旦你知道这一点,你可以告诉默认浏览器打开URL并从你的委托方法返回-webView:createWebViewWithRequest:告诉WebKit你不允许导航。