2012-04-27 177 views
1

我有一个从互联网加载内容的WebView。 如果我有一个使用'_blank'属性的链接,没有任何反应。WebView打开'_blank'链接

到目前为止,我已经尝试设置我的WebView委托,但我无法得到它注册,我甚至不能得到一个NSLog回来,所以我必须使用它错了。代码如下:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [tmpView setUIDelegate:self]; 
} 

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request 
{ 
    NSLog(@"HEY THERE"); 
    return sender; 
} 

理想情况下想什么,我是,每当用户点击其中的一个网页视图链接时,链接始终为网页视图内打开,无处。

这可能吗?

通过研究我发现其他方法,但是不知道如何使用它们来得到我想要的结果:

webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener: 

我完全难倒,所以我会很感激你的帮助。

在此先感谢大家。

+0

这可能帮助:http://conecode.com/news/2011/05/ios-tutorial-creating-a-web-view-uiwebview/ – hanumanDev 2012-04-27 23:25:44

+0

@hanumanDev,这不会帮助,因为它是关于文章iOS'UIWebView',问题是关于Mac'WebView'。 – 2012-04-28 00:32:20

回答

3

如果你不想打开一个新的窗口,但只需要打开你的当前WebView对象的请求,你只需要做到这一点在你的委托:

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request 
{ 
    [[sender mainFrame] loadRequest:request]; 
    return sender; 
} 
+0

这完全是我在找的东西,我只是不知道如何链接代表?我是否将WebView中的箭头从FrameLoadDelegate绘制到文件所有者? – Cristian 2012-04-28 00:32:08

+0

我问的原因是因为目前这种方法似乎没有得到执行?再次感谢Rob – Cristian 2012-04-28 00:34:12

+1

该方法是WebUIDelegate协议的一部分,因此您需要将任何实现该方法的对象分配为WebView的UIDelegate。在你的示例代码中,你已经在App Delegate中实现了它,所以你需要将'WebView'的'UIDelegate'出口链接到'AppDelegate'对象。 – 2012-04-28 00:34:41

1

此博客文章提供了一个使用JavaScript的解决方案,基本上从链接中删除目标属性。

http://blog.mikeweller.com/2009/06/uiwebview-doesnt-open-targetblank-links.html

+0

当在Chrome上进行测试时,确实会删除所有不良的属性,正是我想要的,但是代码似乎没有对我的WebView做任何事情?我已经把它放在WebViewProgressFinished方法中,但链接仍然无法点击? – Cristian 2012-04-27 23:38:13

+0

无论如何,这是一个好主意! – Cristian 2012-04-28 00:42:42

0

可以致电

(WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request 

它确实有效。

还可以实现

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

做你想要达到的目标。

相关问题