iPhone:webView:shouldStartLoadWithRequest:navigationType计时问题

时间:2011-04-11 10:07:53

标签: iphone uiwebview

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

关于如何使这项工作有任何想法?

提前致谢

2 个答案:

答案 0 :(得分:3)

- (void)webViewDidFinishLoad:(UIWebView *)webViews{
}

此方法将在HTML内容完全加载时调用。 它可能对你有帮助。

答案 1 :(得分:3)

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

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

if (navigationType == UIWebViewNavigationTypeLinkClicked) {
    // Catch links

    return NO; // if you want to cancel the request, else YES
}