【问题标题】:Cocoa: Clicking on "Watch on YouTube" inside a WebView does nothingCocoa:在 WebView 中单击“在 YouTube 上观看”没有任何作用
【发布时间】:2012-02-15 09:02:56
【问题描述】:

我有一个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 
decidePolicyForNewWindowAction:(NSDictionary *)actionInformation
        request:(NSURLRequest *)request
   newFrameName:(NSString *)frameName
decisionListener:(id<WebPolicyDecisionListener>)listener

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

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

【问题讨论】:

    标签: cocoa webkit webview youtube


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      相关资源
      最近更新 更多