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?

非常感谢

  • HTML5audio不能在Android 4.0.4设备Native Browser中播放多次
  • 当字段为.focus()'d使用javascript时显示Android的软键盘
  • 信号11 SIGSEGV在Galaxy S3 Android WebView中崩溃
  • 在android蜂窝webview / webkit中实现水平/垂直手指滑动滚动?
  • HTML5音频在Android 4.0.4设备Native Browser中无法多次播放
  • 使用Javascript,HTML5或任何跨平台语言将数据写入USB HID(支持Android)
  • PhoneGap - 键盘使屏幕变黑和闪烁一段时间三星Galaxy Tab 10.1
  • HTML5audio无法通过JavaScript播放,除非手动触发一次
  • 在玩了一段时间之后,我开始工作。 这里有几点你应该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)。