如何知道UIWebView将不会加载?

问题描述:

我知道有委托方法。 在我的情况下,情况有点不同。当我加载我的请求时,会发生后续调用。所以这个页面会被3个url加载回来。之后,它停止。如何知道UIWebView将不会加载?

当它完成加载所有内容后,实际上我想做一些类似'autosubmit'的操作,这对移动浏览器来说是不可能的。我正在寻找工作。但为此,我需要确保webView已完成加载。

所以我的问题是,是否有任何适当的方式来发现Web视图终于停止加载,然后我可以尝试做一些我的'autosubmit'部分?

+0

可能重复的[UIWebView didFinishLoading多次触发](http://*.com/questions/1842370/uiwebview-didfinishloading-fires-multipletimes)? – mAu 2012-08-02 07:19:44

+1

尝试了什么建议在那里,没有太多的帮助,我看到webView.loading变量在整个调用中保持相同的值。 – 2012-08-02 09:18:23

+0

@VaibhavTekam是对的。不幸的是,UIWebView委托方法非常不可靠。 – Stunner 2012-08-02 10:31:39

我有一个检测Web视图完成加载部分问题的检测答案不幸的是,我发现最可靠的方法是每当webViewDidBeginLoad:被调用时递增计数器,每当webViewDidFinishLoading递减时:和webViewDidFailWithError:被调用。只要计数器等于0,就知道Web视图没有加载。

将此检查放在webViewDidFinishLoading中:and webViewDidFailWithError:方法将允许您确定Web何时完成或停止加载(如果发生故障)。

+0

在webViewDidStartLoad中:我会增加第一次为1的计数。然后webViewDidFinishLoading会被调用,我会减少它。现在它将为0.但是在那之后不久,由于重定向或ajax调用,我的页面将再次被加载。所以,这种方法无济于事。 – 2012-08-02 09:24:18

+0

尝试减少一定的延迟(例如0.5s)。如果在此期间提出了任何请求,则您的计数器仍然保持值> 0。 – mAu 2012-08-02 10:19:46