HTML5 Android Phonegap Web应用程序不能与caching清单脱机工作

我有一个使用Phonegap和Android构build的简单Web应用程序,它从服务器调用外部资源(js,css,html),而不是将其存储在Phonegap资源文件夹中。 我更喜欢使用外部资源,因为我的服务器可以提供负责国际化的HTML页面。

这个networking应用程序在我的Android设备上正常工作,当WIFI打开但停止WIFI时失败。 我的服务器提供的index.html文件包含一个有效的清单文件,其中包含正确的mimetype('text / cache-manifest'),列出应用程序需要运行的每个文件。

我的Android活动类应该有caching启用:

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); 

值得一提的是,我的应用使用像/ aaa / bbb /等url的ajax调用来从服务器调用网页,我不知道这是否可能是问题(我不直接调用像index.html物理页面) …但是,这个networking应用程序在桌面浏览器(谷歌浏览器)离线…

任何想法我能做些什么来启用我的Phonegap应用程序的HTML5cachingfunction?

非常感谢

Solutions Collecting From Web of "HTML5 Android Phonegap Web应用程序不能与caching清单脱机工作"

在玩了一段时间之后,我开始工作。 这里有几点你应该validation当这种types的caching问题:

  • 注意使用GET方法传递的url参数…我在我的应用程序的页面之间导航时传递参数,这些参数使得我的url与清单文件中的urls不同,导致caching失败。
  • 当我在手机上testing离线模式时,我只是closures了WIFI,认为这足以触发我的应用程序的caching版本,但它不是…当我testing我的应用程序在本地networkingIP(如192.168.2.11 ),似乎我的应用程序试图通过3Gnetworking仍然打开的IP …因此,离线testing时使用飞行模式。
  • 不知道这是否是必要的,因为我读了一些其他的线程,但我把我的清单文件重命名为cache.manifest。

问候

显然,您需要“修复Android Shell本机应用程序以启用HTML5caching”。

如果你还没有,请查看:

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

我正在开发一个类似的系统。 我所做的是我创build了Phonegap网页,并将它们存储在我的WAMP服务器的www文件夹中。 然后,我所做的就是在onCreate方法中基本上super.LoadURL(“insert_ip_address_here / insert_name_of_folder_where_webpage_is_located”),并且完美地加载phonegap应用程序(是的,只需要Android应用程序本身只有一行代码)。 但是,您仍然需要确保phone.xml所需的config.xml,manifest和所有configuration都已正确完成(有关此操作的说明,请参阅http://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source =网页及CD = 1&VED = 0CEAQFjAA&URL = HTTP%3A%2F%2Fwww.adobe.com%2Fdevnet%2Fhtml5%2Farticles%2Fgetting-开始与- PhoneGap的function于蚀换android.html&EI = XfBuUcmKNu684AP3vYDQBw&USG = AFQjCNG16oUTDylMqz20YiiMZTlDxrfbPg&BVM = bv.45368065 ,d.dmg )。

让我知道这是你select追求的道路。 我可以提供额外的支持,例如使用多播等方式使本地系统的IP地址(在super.loadurl(…)行中为dynamic)。