在UIWebView中使用进度条?

时间:2011-08-29 02:05:56

标签: iphone objective-c ios ipad uiwebview

在加载网页时是否可以使用带有UIWebView的进度条,就像Safari在地址栏中所做的那样?我读到你需要使用Apple不允许使用的私有API,但这似乎不正确......你无法检测到页面有多大并且下载量更新进度条?

2 个答案:

答案 0 :(得分:2)

对于这种情况,您只能通过使用Content-Length标题来“检测”页面大小,但是否则您仍然可以提供加载控件(就像其中一个移动的斑马线类型条没有显示离散的%进度但显示活动正在发生..甚至只是UIActivityIndicator)。您也可以尝试像ASIWebPageRequest这样的现成课程,它可以显示进度。作者说:

  

ASIWebPageRequests目前不支持使用其外部资源对整个请求进行进度跟踪。但是,来自外部资源请求的进度更新会传递给您的代理,因此可以通过一些工作自行实现。

答案 1 :(得分:1)

如果您是浏览器,那么您可以访问初始HTTP响应的Content-Length响应标头。然后你也可能决定通过JavaScript,图像等来增加任何子请求的结果。

MobileSafari最终可以告诉每个请求有多大,将它们全部添加,然后向您提供有关整体下载进度的信息。

不确定你要做什么,但这就是他们完成它的方式。