在 UIWebView 中使用进度条?
Posted
技术标签:
【中文标题】在 UIWebView 中使用进度条?【英文标题】:Use progress bar in UIWebView? 【发布时间】:2011-08-29 02:05:55 【问题描述】:是否可以在加载网页时使用带有 UIWebView 的进度条,就像 Safari 在地址栏中所做的那样?我读到您需要使用 Apple 不允许的私有 API,但这似乎不对……您无法检测页面的大小并根据下载量更新进度条?
【问题讨论】:
【参考方案1】:对于这种事情,您只能通过使用Content-Length
标头来真正“检测”页面大小,但否则您仍然可以显示加载控件(例如不显示离散百分比进度,但表明活动正在发生......甚至只是UIActivityIndicator
)。您也可以尝试像ASIWebPageRequest
这样的现成课程,它可以显示进度。作者表示:
ASIWebPageRequests 当前不支持使用外部资源对整个请求进行进度跟踪。但是,来自外部资源请求的进度更新会传递给您的委托,因此您可以通过一些工作自行实现。
【讨论】:
【参考方案2】:如果您是浏览器,那么您可以访问初始 HTTP 响应的 Content-Length
响应标头。然后,您可能还决定将通过 javascript、图像等传入的任何子请求的结果添加到这个大小。
MobileSafari 最终可以判断每个请求的大小,将它们全部加起来,然后向您提供有关整体下载进度的信息。
不确定您要做什么,但他们就是这样做的。
【讨论】:
以上是关于在 UIWebView 中使用进度条?的主要内容,如果未能解决你的问题,请参考以下文章