【问题标题】:How to know UIWebView won't load anymore?如何知道 UIWebView 将不再加载?
【发布时间】:2012-07-31 03:20:11
【问题描述】:

我知道有委托方法。 就我而言,情况有点不同。当我加载我的请求时,会发生后续调用。因此,页面将使用 3 个 url 背靠背加载。之后,它停止。

加载完所有内容后,实际上我想做一些类似“自动提交”的操作,这对于移动浏览器来说是不可能的。我正在寻找解决方法。但为此,我也需要确保 webView 已完成加载。

所以我的问题是,是否有任何适当的方法可以找出 Web 视图最终停止加载,然后我可以尝试做一些事情来完成我的“自动提交”部分?

【问题讨论】:

  • 尝试了那里的建议,没有太大帮助,我看到 webView.loading 变量在整个调用过程中保持相同的值。
  • @VaibhavTekam 是对的。不幸的是 UIWebView 委托方法非常不可靠。

标签: iphone ios uiwebview


【解决方案1】:

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

将此检查放在 webViewDidFinishLoading: 和 webViewDidFailWithError: 方法中,您可以确定网络何时完成或停止加载(在失败的情况下)。

【讨论】:

  • 在 webViewDidStartLoad 中:我将增加第一次为 1 的计数。然后 webViewDidFinishLoading 将被调用,我将减少它。现在它将为 0。但不久之后,由于重定向或 ajax 调用,我的页面将再次加载。所以,这种方法没有用。
  • 在一定的延迟(例如 0.5s)后尝试减少。如果在此期间有任何请求,您的计数器仍然保持值 > 0。
猜你喜欢
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 2014-02-28
  • 2020-02-10
  • 2016-04-26
  • 1970-01-01
相关资源
最近更新 更多