Использовать UIWebView Private API? - PullRequest
2 голосов
/ 04 августа 2011

Я хочу сделать браузер как Safari с UIWebView, который может показать прогресс загрузки веб-страницы. И я увидел приложение «Downloads Lite - Downloader & Download Manager», продающее в магазине приложений (http://itunes.apple.com/app/id349275540?&mt=8), который может сделать это. Он также может настроить пользовательский агент запроса, даже получить «тип содержимого» заголовка ответа, чтобы решить, нужно ли его загружать.

Но кажется, что это невозможно сделать с помощью открытых API UIWebView, поэтому мне интересно, как он это сделал. Не могли бы вы дать мне несколько советов по этому поводу?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

посмотрите на это приложение / блог: icab.de Общий подход заключается в создании подкласса NSProtocol и перехвате всех запросов http / https, которые дают все, что вы хотите.

0 голосов
/ 04 августа 2011

Нет необходимости в частном API, чтобы делать подобные вещи.

Например, вы используете индикатор прогресса.Используя асинхронный NSURLConnection, вы можете получить размер ожидаемого размера контента, который вы хотите загрузить:

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

Затем вы просто сравните с количеством загруженных данных.Настройка пользовательских агентов может быть выполнена с помощью инфраструктуры CFNetwork.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...