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