2013-04-05 2 views
2

Я использую Titanium для создания приложения для Android. Приложение использует веб-просмотр для загрузки внешних веб-страниц HTML5. На веб-странице используется манифест для кэширования страницы и некоторых активов. Это отлично работает на настольных браузерах и сторонних браузерах приложений в Android (Chrome).Ttitanium webview и кэш приложений HTML5

Когда я просматриваю страницу в веб-виде в приложении Titanium build, кажется, что манифест не используется, страница просто загружает все с сервера. Та же проблема возникает, когда я использую сборку в браузере моего телефона (HTC one X).

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

файл манифеста:

CACHE MANIFEST 
# version 1 

leerlingen.html 
jquery.js 
style.css 
handler.js 

NETWORK: 
* 

ответ

0

На всякий случай кто-то работает в тех же проблемах, с которыми я столкнулся, вот что я сделал. Кэш приложений HTML5, похоже, не работает в встроенном браузере Android и с этим веб-просмотром. В Titanium, похоже, нет способа контролировать веб-просмотр, чтобы включить кеш приложения.

Работа для меня заключалась в использовании Titanium и его функции httpClient (Titanium.Network.HTTPClient) для запроса файлов (HTML, CSS, javascript) и сохранения их в локальной файловой системе приложения (Titanium.Filesystem).

0

Первое: Titanium обеспечивает гораздо больше, чем WebView. Если вы планируете отображать только веб-страницы, возможно, вам стоит взглянуть на PhoneGap/Cordova, которые лучше всего подходят вашим потребностям.


Как вы заметили, не все браузеры поддерживают функцию HTML5 Caching, как ожидалось. Я не могу сказать, не работает ли он для Android вообще или только для вашей конкретной версии, потому что WebKit обычно поддерживает его, но зависит от используемой версии WebKit. И это может быть иначе.

EDIT: Кажется, что (в собственном андроиде) эта функция может быть включена, как написано здесь: Application cache in HTML5 doesn't work in Android PhoneGap application. В настоящее время это невозможно в титане (могут быть неофициальные настройки, которые я не знаю, но от http://docs.appcelerator.com это невозможно).

Лично я бы предпочел другое решение. Данные кэширования сами по себе и отобразите его, если нет сетевого подключения. Но это зависит от того, чего вы пытаетесь достичь. Имея мало содержания, которое не меняется часто, это имеет смысл. Динамическое изменение данных (например, твиттер-поток, например) было бы затруднительным. Также это зависит от ваших пользователей и от того, где они хотят получить доступ к вашему приложению.

И есть открытый вопрос: когда вы хотите использовать все функции кеширования, почему вы хотите создать приложение? Создание простой мобильной веб-страницы будет выполнять ту же работу. При создании приложения я бы не использовал кеширующие функции HTML 5. Вы должны хранить все статические ресурсы в своем приложении и просто загружать данные из сети. Это может быть достигнуто как Titanium, так и PhoneGap/Cordova. Титан более полезен для родного интерфейса и некоторых собственных функций, в то время как PhoneGap/Cordova будет более подходящим для размещения на основе HTML5.

+0

спасибо за ответ, я думал о том же, когда дело дошло до использования кэширования HTML5, но вместо этого использовало Titanium. – user2210902

Смежные вопросы