Можно ли кешировать UIWebView в iPhone? - PullRequest
2 голосов
/ 15 апреля 2009

Я использовал приложение NYTimes для iPhone, мне стало немного любопытно, когда я заметил, что оно кеширует UIwebview, хотя я не открывал эту статью. У кого-нибудь есть идеи, как это сделать?

Как приложение NYTimes для iPhone делает чтение в автономном режиме?

Любая помощь с благодарностью.

Спасибо

Amit

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Я написал приложение NYTimes. Вот некоторые детали, которые вы могли бы получить, заглянув внутрь пакета приложения.

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

Содержание статьи содержится в серии тегов P (фрагмент HTML). Я помещаю это в специальную страницу скелета HTML, которая поставляется вместе с приложением. Страница статической оболочки также содержит CSS и JS, используемые для правильного отображения статьи и ленивой загрузки изображений.

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

1 голос
/ 15 апреля 2009

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

Приложение NYTimes, вероятно, кэширует html и изображения в локальном хранилище.

Поищите в Google "UIWebView local", и вы получите несколько полезных хитов.

Я попробовал, и он прекрасно работает:


Сначала создайте «приложение на основе представления» и добавьте UIWebView в NIB.

Во-вторых, добавьте этот код в ваш код UIViewController:

- (void)viewDidLoad 
{

    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL *url = [NSURL fileURLWithPath:path isDirectory:NO];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [webView loadRequest:request];


    [super viewDidLoad];
}

В-третьих, добавьте файл «index.html» в папку «Ресурсы» в xcode, и он будет отображен.

UPDATE:

Действительно, сложной частью этого является загрузка изображений и таблиц стилей для веб-страницы. Сделать это на стороне сервера просто с Simple HTML Parser (и PHP). Просто упакуйте все в zip и загрузите на свой iPhone.

В качестве альтернативы, вы можете сделать это локально с помощью C / C ++ / OBJC HTML-парсера (libxml2.2 доступна на iOS). Посмотрите этот ТАК вопрос Разбор HTML на iPhone .

Это будет небольшой проект, так что удачи.

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