可以在UIWebView中打开弹出链接吗?

Jas*_*ien 7 iphone objective-c popup uiwebview uikit

我有一个UIWebView,我在我的应用程序中使用它作为嵌入式浏览器.

我注意到,打开新窗口的网页中的链接会被忽略而不会调用我的代码.

我试过破坏点

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
Run Code Online (Sandbox Code Playgroud)

然后选择一个可以打开弹出窗口的链接,并且永远不会遇到断点.我有什么办法可以拦截弹出链接的选择并获取URL并正常加载它吗?

我对在应用程序本身中显示一个弹出窗口不感兴趣,我只想在弹出窗口中加载的任何内容的URL加载到主webview本身.

这可能吗?

谢谢!

dme*_*edi 7

我也遇到了这个问题,HTML重写是我能想到的最好的解决方案.我遇到的最大问题是,在调用webViewDidFinishLoad:方法之前,Web浏览器是交互式的,最长可达几秒钟,因此链接似乎会被破坏几秒钟,直到它们被重写为止.

我重写了三个方面:链接,表单帖子和对window.open()的调用.

我在Jasarian的回答中使用了类似的方法,通过迭代标签和表单来覆盖链接和表单的目标.要覆盖window.open,我使用了类似于以下内容的代码:

var oldWindowOpen = window.open;
window.open = function(url, sName, sFeatures, bReplace) {
  oldWindowOpen(url, '_self');
};
Run Code Online (Sandbox Code Playgroud)