Получить длину контента из UIWebView - PullRequest
2 голосов
/ 06 апреля 2010

Я хочу выяснить, изменилась ли веб-страница, я собирался использовать длину содержимого веб-страницы, но не нашел способа сделать это. Есть идеи? Или кто-нибудь может придумать другой способ периодически проверять, изменилась ли веб-страница?

Ответы [ 2 ]

6 голосов
/ 06 апреля 2010

Если вы имеете в виду, что произошла измененная навигация, вы можете использовать пользовательский UIWebViewDelegate и установить флаг, например, когда -(void)webViewDidFinishLoad: произошло.

Возможно, вы захотите проверить *Свойство 1007 * s request для проверки, действительно ли URL-адрес отличается.

Если вы хотите проверить, изменилось ли содержимое, вы можете получить его, например, так:

NSString* script  = @"document.body.innerHTML";
NSString* content = [webView stringByEvaluatingJavaScriptFromString:script];

Или получитьдлина, например, так:

NSString* script = @"document.body.innerHTML.length";
int length = [[webView stringByEvaluatingJavaScriptFromString:script] integerValue];
0 голосов
/ 07 апреля 2010

Я предполагаю, что вы хотите знать, отличается ли веб-страница, которую вы показываете, от веб-страницы, которую вы получили бы, если снова подключитесь к серверу.

Вы не можете многое сделать с документированными интерфейсами в UIWebView.

Вы можете использовать NSURLConnection, чтобы запрашивать только заголовки веб-страницы, а не фактический контент. Как только вы получите заголовки, посмотрите на поля, такие как «Last-Modified» и «Content-Length», чтобы увидеть, изменились ли они. Вы также можете посмотреть код ответа 304 без изменений.

Установите HTTPMethod нового NSURLRequest в HEAD вместо GET, чтобы не получить тело. Установите ваш класс в качестве делегата NSURLConnection, созданного с этим запросом. Обработайте следующий обратный вызов делегата и изучите заголовки в ответе.

-(void) connection:(NSURLConnection *)inConnection didReceiveResponse:(NSURLResponse *)inResponse;

Для получения дополнительной информации смотрите здесь:

http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

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