Лучшая практика для оффлайн-сайта в iOS - PullRequest
7 голосов
/ 20 апреля 2011

Я создаю приложение, которое требует загрузки большого количества html5 контента. По сути, он работает аналогично журнальным приложениям, которые вы видите для iPad, за исключением того, что вместо изображений он будет использовать UIWebViews и HTML.

У меня вопрос, что будет лучшим способом для хранения этого. Я думал о загруженном zip-файле, который распаковывается в пакет и содержит html-файлы, изображения, css и т. Д., Или помещает все html в базу данных и просто загружает и помещает изображения, css, видео и т. Д. расслоение.

Некоторые соображения:

Многие ссылки будут локальными для устройства, а некоторые - для внешних сайтов.

Мне нужно будет иметь возможность выполнять полнотекстовый поиск по всему html-контенту.

Размер содержимого будет варьироваться.

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

Спасибо, Brandon

Ответы [ 3 ]

5 голосов
/ 20 апреля 2011

На этот вопрос довольно легко ответить, посмотрев первую и лучшую обзорную книгу по HTML5 прямо сейчас ... И лучшую ее часть опубликовали под лицензией CC.

http://diveintohtml5.ep.io/offline.html <- это целая глава о кэшировании веб-приложений и отличная отправная точка для вашего приложения. </p>

Это не сложно, и это ультрасовременный, что круче, чем это.

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

Хотя у меня есть больше ресурсов, которые были в нижней части этой главы

Стандарты:

Документация поставщика браузера:

Уроки и демонстрации:

2 голосов
/ 20 апреля 2011

Вы можете сначала скачать файл, отражающий структуру изображений сайта, css, htmls.

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

Edit: Вы можете перехватить запрос в делегате webView и посмотреть, является ли он внутренним или внешним

Webview: shouldStartLoadWithRequest: navigationType: Отправляется до начала загрузки веб-представления содержание.

  • (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) запрос navigationType: (UIWebViewNavigationType) navigationType

Справочник по протоколу UIWebViewDelegate

0 голосов
/ 20 апреля 2011

Я не использовал его сам, но вы можете взглянуть на ASIHTTPRequest * ASIWebPageRequest класс.

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