Intereting Posts
Как отключить домашнюю и другие системные кнопки в Android? Android – Как скрыть параметр меню для текущего фрагмента Разница между командой adb «install» и командой «pm install»? Сохраняет ли SurfaceTexture цикл паузы активности / возобновления? Spinner внутри GridLayout Предупреждение: этот <FrameLayout> можно заменить тегом <merge> Как программно удалить приложение из пускового устройства (на корневом устройстве) Android получит локализацию устройства Горизонтальный просмотр с выбором и снятием изображения Android: Фрагмент предпочтений с фрагментом навигационного ящика Java.lang.NoClassDefFoundError: oauth.signpost.commonshttp.CommonsHttpOAuthConsumer android Почему символ новой строки в textview вызывает отступ новой строки? Химическая формула на Android Есть ли способ узнать тип объекта? Используя MediaWiki, чтобы вытащить текст со страницы Викии, но он возвращается в большой беспорядок, есть ли лучший способ сделать это, чтобы вытащить текст из каждого раздела?

HTML5 Android Phonegap Web-приложение не работает в автономном режиме с манифестом кэша

У меня есть простое веб-приложение, созданное с помощью Phonegap и Android, которые вызывают внешние ресурсы (js, css, html) с сервера, вместо того, чтобы хранить их в папке с папками Phonegap. Я предпочитаю использовать внешние ресурсы, потому что мой сервер может доставлять html-страницы, требующие интернационализации.

Это веб-приложение отлично работает на моем устройстве Android, когда WIFI включен, но он не работает при остановке WIFI. Мой файл index.html, поставляемый моим сервером, содержит допустимый файл манифеста с правильным mimetype ('text / cache-manifest'), в котором перечисляются все файлы, которые приложение должно работать.

Предполагается, что у моего класса активности Android есть возможность кэширования:

this.appView.getSettings().setDomStorageEnabled(true); this.appView.getSettings().setAppCacheMaxSize(1024 * 1024 * 15); String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); this.appView.getSettings().setAppCachePath(appCachePath); this.appView.getSettings().setAllowFileAccess(true); this.appView.getSettings().setAppCacheEnabled(true); 

Возможно, стоит упомянуть, что мое приложение использует ajax-вызов с URL-адресами, например / aaa / bbb /, для вызова веб-страниц с сервера, и я не знаю, может ли это быть проблемой (я не вызываю физические страницы напрямую, как index.html) … Тем не менее, это веб-приложение хорошо работает в настольном браузере (Google Chrome), когда он отключен …

Любая идея, что еще я могу сделать, чтобы включить эту функцию кеша HTML5 в моем приложении Phonegap?

большое спасибо

Поиграв некоторое время, я заработал. Вот некоторые моменты, которые вы должны проверить, если это связано с проблемой кэширования этого типа:

  • Позаботьтесь о параметрах url, переданных с помощью метода GET … Я передавал параметры, когда перемещение между страницами моего приложения и этими параметрами делало мои URL-адреса отличными от тех, что были в кэше манифеста, в результате чего кэш отказался.
  • Когда я тестировал автономный режим на своем телефоне, я только закрывал WIFI, думая, что этого достаточно, чтобы вызвать кэшированную версию моего приложения, но это было не так … Когда я тестировал свое приложение, опубликованное под локальной сетью IP (например, 192.168.2.11 ), Похоже, что мое приложение пыталось достичь этого IP-адреса через сеть 3G, которая все еще была включена … Поэтому используйте режим самолета при тестировании в автономном режиме.
  • Не уверен, что это было необходимо, когда я читал его на некоторых других потоках, но я переименовал свой файл манифеста в cache.manifest.

С уважением

Очевидно, вам нужно «исправить приложение Android Shell Native для включения кэширования HTML5».

Если вы еще этого не сделали, проверьте:

http://tmkmobile.wordpress.com/2012/03/04/html5-offline-solution/

Я разрабатываю подобную систему. Я сделал, что создал веб-страницы Phonegap и сохранил их в папке www моего сервера WAMP. Тогда я делаю это в основном super.LoadURL ("insert_ip_address_here / insert_name_of_folder_where_webpage_is_located") в методе onCreate, и он отлично загружает приложение phonegap (да, все, что вам нужно, это всего лишь строка кода в самом приложении Android). Однако вы все равно должны убедиться, что config.xml, манифест и все конфигурации, необходимые для телефонной заставки, выполнены правильно (инструкции по этому поводу см. На странице http://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source = веб & кд = 1 & вед = 0CEAQFjAA & URL = HTTP% 3A% 2F% 2Fwww.adobe.com% 2Fdevnet% 2Fhtml5% 2Farticles% 2Fgetting-начал-с-PhoneGap-в-затмении-для-android.html & е = XfBuUcmKNu684AP3vYDQBw & USG = AFQjCNG16oUTDylMqz20YiiMZTlDxrfbPg & BVM = bv.45368065 , D.dmg ).

Дайте мне знать, если это путь, который вы решили преследовать. Я могу предоставить дополнительную поддержку с такими вещами, как создание ip-адреса (в строке super.loadurl (…)) динамический для локальной системы с использованием многолистного и т. Д.