【问题标题】:iPhone : webView:shouldStartLoadWithRequest:navigationType timing problemiPhone : webView:shouldStartLoadWithRequest:navigationType 计时问题
【发布时间】:2011-04-11 10:07:52
【问题描述】:

我有一个正在加载的 WebView 和 HTML 字符串,我希望它能够捕获对链接的点击。 为此,我需要使用 webView:shouldStartLoadWithRequest:navigationType 方法。 问题是这个方法在 HTML 内容完全加载之前被多次调用,我只想在那一刻开始捕捉点击。 问题是如何知道 HTML 内容何时完全加载?我认为这很简单,所以我创建了一个布尔值作为包含 WebView 的 ViewController 的 iVar,并在调用 loadHTMLString 后将其设置为 YES。然后,在 webView:shouldStartLoadWithRequest:navigationType 中,我正在测试该布尔值是否为真,如果是这样,我正在输出类似“OK”的内容。但是没有点击链接就出现了“OK”=>失败。

关于如何完成这项工作的任何想法?

提前致谢

【问题讨论】:

    标签: iphone uiwebview


    【解决方案1】:

    您可以使用webViewDidFinishLoad: 委托方法来了解何时加载 HTML。

    但我宁愿使用其他解决方案:
    webView:shouldStartLoadWithRequest:navigationType: 中,您可以按导航类型过滤请求:

    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        // Catch links
    
        return NO; // if you want to cancel the request, else YES
    }
    

    【讨论】:

    • 我不知道我是在用我的布尔值重新发明轮子。我现在肯定会使用 navigationType 变量,谢谢。
    【解决方案2】:
    - (void)webViewDidFinishLoad:(UIWebView *)webViews{
    }
    

    当 HTML 内容完全加载时会调用此方法。 它可能会帮助你。

    【讨论】:

    • 我应该自己找到的(我想我正在寻找更复杂的东西......),谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2023-03-15
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多