【问题标题】:iOS UIWebView popup blocker issueiOS UIWebView 弹出窗口拦截器问题
【发布时间】:2017-06-15 23:00:39
【问题描述】:

在 iOS 中,我打开网页时的默认行为是登录后会在新窗口中打开下一页。但是现在当我在 iOS webview 中打开它时,它并没有打开下一页。我用谷歌搜索了一下,原因似乎是弹出窗口阻止程序。那么,有没有什么简单的方法可以在 iOS webview 中禁用弹窗拦截器呢?

【问题讨论】:

    标签: ios uiwebview


    【解决方案1】:

    网页可能包含您未正确处理的重定向。

    您可能首先想使用webView:didFailNavigation:withError:webView:didFailProvisionalNavigation:withError: 来获取一些原因或线索。您可以尝试调试webView:decidePolicyForNavigationAction:decisionHandler: 以查看您是否允许导航。

    如果重定向在转换过程中以某种方式生成about:blank 页面,您可以尝试使用UIWebViewDelegatewebView:shouldStartLoadWithRequest:navigationType:,如果request.URL.absoluteString 确实是about:blank,则返回YES,例如:

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
        if ([request.URL.absoluteString isEqualToString:@"about:blank"]) {
            return YES;
        }
        return NO;
    }
    

    顺便说一句,您也可以尝试使用 Safari 在您的模拟器中调试 webViews。例如,在检查器中尝试document.location,以查看页面未打开时的实际 URL。

    【讨论】:

    • 请提供一些示例代码或参考一个示例项目来实现相同的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2016-10-27
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多