2

我想用UIWebView做一个类似Safari的浏览器,可以显示网页的加载进度。我在应用商店 (http://itunes.apple.com/app/id349275540?&mt=8) 中看到了一个可以做到这一点的应用程序“Downloads Lite - Downloader & Download Manager”。它还可以自定义请求的用户代理,甚至可以获取响应头的“内容类型”来决定是否需要下载。

但似乎用 UIWebView 的公共 API 实现它是不可能的,所以我想知道他是怎么做到的。你能给我一些建议吗?

4

2 回答 2

0

看看这个应用程序/博客:icab.de 一般方法是创建 NSProtocol 的子类并捕获所有 http/https 请求,这将为您提供所需的一切。

于 2011-11-17T11:03:11.757 回答
0

不需要私有 API 来做这样的事情。

您以进度指示器为例。通过使用异步 NSURLConnection 您可以获得您想要下载的内容的预期大小:

-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response
{
    [response expectedContentLength];
}

然后,您只需与到目前为止下载的数据量进行比较。

自定义用户代理可以使用 CFNetwork 框架完成。

于 2011-08-04T08:15:16.170 回答