问题描述
在 iOS 中,我打开网页时的默认行为是登录后在新窗口中打开下一页.但是现在当我在 iOS webview 中打开它时,它不会打开下一页.我谷歌了一下,原因似乎是弹出窗口阻止程序.那么,有没有什么简单的方法可以禁用 iOS webview 中的弹出窗口拦截器?
In iOS, the default behavior when I open my webpage is that after login it opens the next page in a new window. But now when I open it in iOS webview, it does not open the next page. I google about it, and the cause seems to be the popup blocker. So, is there any simple way to disable the popup blocker in the iOS webview?
推荐答案
网页可能有一个您没有正确处理的重定向.
The webpage might have a redirection that you are not handling properly.
您可能首先想使用 webView:didFailNavigation:withError:
或 webView:didFailProvisionalNavigation:withError:
来获取一些原因或线索.您可以尝试调试 webView:decidePolicyForNavigationAction:decisionHandler:
以查看是否允许导航.
You may first want to use webView:didFailNavigation:withError:
or webView:didFailProvisionalNavigation:withError:
to get some reasons or clues. And you can try to debug webView:decidePolicyForNavigationAction:decisionHandler:
to see whether you are allowing the navigation.
如果重定向以某种方式在转换中生成了一个 about:blank
页面,您可以尝试使用 UIWebViewDelegate
的 webView:shouldStartLoadWithRequest:navigationType:
并返回 YES
如果 request.URL.absoluteString
确实是 about:blank
,例如:
If the redirection somehow generates an about:blank
page in the transition, you could try to use UIWebViewDelegate
's webView:shouldStartLoadWithRequest:navigationType:
and returns a YES
if request.URL.absoluteString
is indeed about:blank
, for example:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([request.URL.absoluteString isEqualToString:@"about:blank"]) {
return YES;
}
return NO;
}
顺便说一句,您也可以尝试使用 Safari 在模拟器中调试 webView
s.例如,在检查器中尝试 document.location
以查看页面未打开时的实际 URL.
BTW, you also can try to use Safari to debug webView
s in your simulator. For instance, try document.location
in your inspector to see what actually is the URL when the page doesn't open.
这篇关于iOS UIWebView 弹出窗口拦截器问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!