Cocoa 可可:点击;在YouTube上观看;在WebView内部,什么都不做

Cocoa 可可:点击;在YouTube上观看;在WebView内部,什么都不做,cocoa,webkit,webview,youtube,Cocoa,Webkit,Webview,Youtube,我有一个WebView,里面嵌入了YouTube视频。视频播放效果很好,除了点击“在Youtube上观看”外,其他一切都正常 我想用“在YouTube上观看”按钮在默认浏览器上打开YouTube视频,但目前它什么都不做 我在WebView上设置了WebPolicyDelegate,但没有: - (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation

我有一个
WebView
,里面嵌入了YouTube视频。视频播放效果很好,除了点击“在Youtube上观看”外,其他一切都正常

我想用“在YouTube上观看”按钮在默认浏览器上打开YouTube视频,但目前它什么都不做

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

- (void)webView:(WebView *)webView 
   decidePolicyForNavigationAction:(NSDictionary *)actionInformation
        request:(NSURLRequest *)request
          frame:(WebFrame *)frame
decisionListener:(id<WebPolicyDecisionListener>)listener`
-(void)webView:(webView*)webView
决策制定航空行动:(NSDictionary*)行动信息
请求:(NSURLRequest*)请求
框架:(WebFrame*)框架
decisionListener:(id)listener`
也不是:

-(void)webView:(webView*)webView
DecidePolicyFornewIndowAction:(NSDictionary*)操作信息
请求:(NSURLRequest*)请求
newFrameName:(NSString*)frameName
decisionListener:(id)listener
单击“在YouTube上观看”按钮时调用

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

在新选项卡/窗口中,“在YouTube上观看”按钮执行导航,因此您需要实现
WebUIDelegate
-webView:createWebViewWithRequest:
方法。您必须从请求的URL推断请求是否由“在YouTube上观看”按钮发起。一旦您知道了这一点,您可以告诉默认浏览器打开URL,并从委派方法返回
nil
,告诉WebKit您不允许导航

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