我有一个 UIWebView,我在我的应用程序中将其用作嵌入式浏览器。
我注意到网页中打开新窗口的链接在没有调用我的代码的情况下被忽略。
我试过断点
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
然后选择一个会打开弹出窗口的链接,断点永远不会命中。 我能做些什么来拦截弹出链接的选择并获取 URL 并正常加载它吗?
我对在应用程序本身中显示弹出窗口不感兴趣,我只想将要加载到弹出窗口中的任何内容的 URL 加载到主 Web View 本身。
这可能吗?
谢谢!
最佳答案
我也遇到过这个问题,重写 HTML 是我能想到的最佳解决方案。我用这种方法遇到的最大问题是,在调用 webViewDidFinishLoad: 方法之前,Web 浏览器最多只能交互几秒钟,因此链接似乎会中断几秒钟,直到它们被重写。
我重写了三个区域:链接、表单帖子和对 window.open() 的调用。
我对 Jasarian's 中截取的第一个代码使用了类似的方法回答通过遍历标签和表单来覆盖链接和表单的目标。为了覆盖 window.open,我使用了类似于以下的代码:
var oldWindowOpen = window.open;
window.open = function(url, sName, sFeatures, bReplace) {
oldWindowOpen(url, '_self');
};
关于iphone - 在 UIWebView 中打开弹出链接,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11239638/