iPhone: извлечение текста и кэш-памяти извлеченной веб-страницы

В моем приложении для iPhone есть информационная страница, которая содержит UIWebView, который я указал на информационной странице моего веб-сайта:

NSString *urlAddress = @"http://www.toneme.org/Software";
NSURL *url = [NSURL URLWithString: urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL: url];

[self.webView loadRequest:requestObj];

Однако каждый раз, когда пользователь загружает приложение, он будет получать пустой экран целую вечность, пока он не получит данные. Это не хорошо.

Было бы намного лучше отображать последнюю загруженную страницу, пытаясь получить новую версию в фоновом режиме. Но я не вижу, как это сделать чисто. может кто-нибудь заставить меня начать?

Второй вопрос: для iPhone нецелесообразно отображать эту веб-страницу в UIWebView, поскольку веб-страница содержит три панели; все просто не влезет. Я действительно хочу извлечь текст со страницы. Есть ли чистый способ сделать это? Могу ли я указать, что хочу загрузить только основную часть?

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


person P i    schedule 22.11.2010    source источник


Ответы (3)


Предоставьте HTTP API, который предоставляет текст в каком-либо формате, который вы можете анализировать (например, JSON, XML), который позволит вам загружать эти данные, хранить их локально (подробнее об этом чуть позже) и создавать представление из этого загруженного данные для отображения красиво и красиво. :)

Что касается хранения данных, посмотрите на написание класса, который сохраняет данные в каталоге документов вашего приложения и обрабатывает информацию о HTTP-заголовке сервера, чтобы увидеть, нужно ли повторно загружать файл или он уже до date (в идеале это можно сделать с помощью etags, но и last-modified-date, если etags не поддерживаются в вашей инфраструктуре).

person jer    schedule 22.11.2010

Поскольку сделать это самостоятельно, безусловно, возможно, но для того, чтобы сделать это правильно, потребуется выполнить некоторые действия, вы можете проверить AsiHTTPRequest и особенно ASIWebPageRequest.

ХТН

person Stephan    schedule 22.11.2010

Вы должны иметь возможность сохранять содержимое UIWebView и данные URL-адреса в файл для повторного использования в методе делегата webViewDidFinishLoad, используя

NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];
person Steven Veltema    schedule 22.11.2010