Използване на UIWebView Private API?

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

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


person ShangKai    schedule 04.08.2011    source източник


Отговори (2)


Няма нужда от частен API за извършване на подобни неща.

Взимате например индикатор за напредък. Чрез използване на асинхронен NSURLConnection можете да получите размера на очаквания размер на съдържанието, което искате да изтеглите:

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

След това просто сравнявате с количеството данни, които сте изтеглили досега.

Персонализирането на потребителски агенти може да се извърши с CFNetwork framework.

person Nyx0uf    schedule 04.08.2011
comment
Напредъкът на зареждане на уеб страница е напредъкът на зареждането на всички ресурси на страницата. включете js css изображение iframe и т.н. това не е прогрес на зареждане на html код. - person ShangKai; 04.08.2011

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

person myeyesareblind    schedule 17.11.2011
comment
Бихте ли предоставили линк към блога? - person eeerahul; 17.11.2011