iPhone: извлечение текста и Disk-Cache из найденной веб-страницы - PullRequest
0 голосов
/ 22 ноября 2010

В моем приложении для 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, поскольку веб-страница содержит три панели;все это просто не подходит.Я действительно хочу извлечь текст со страницы.Есть ли чистый способ сделать это?Могу ли я указать, что я хочу скачать только основной текст?

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

Ответы [ 3 ]

1 голос
/ 22 ноября 2010

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

HTH

1 голос
/ 22 ноября 2010

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

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

0 голосов
/ 22 ноября 2010

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

NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];
...