我有一个使用Phonegap和Android构建的简单Web应用程序,可以从服务器调用外部资源(js,css,html),而不是将其存储在Phonegap资产文件夹中。我更喜欢使用外部资源,因为我的服务器可以提供负责国际化的html页面。
当WIFI开启时,这个网络应用程序在我的Android设备上运行良好,但在停止WIFI时失败。我的服务器提供的index.html文件包含一个有效的清单文件,其中包含正确的mimetype('text / cache-manifest'),列出了应用需要工作的每个文件。
我的Android Activity类应该启用缓存:
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 /等网址的ajax调用来从服务器调用网页,我不知道这是否可能是问题(我不会像索引一样直接调用物理页面.html)...但是,这个网络应用程序在离线时在桌面浏览器(谷歌浏览器)中运行良好...
知道我还可以在Phonegap应用上启用此HTML5缓存功能吗?
非常感谢
答案 0 :(得分:6)
玩了一会儿后,我开始工作了。当遇到这种类型的缓存问题时,您应该验证以下几点:
此致
答案 1 :(得分:1)
显然你需要“修复Android Shell Native App以启用HTML5缓存”。
如果您还没有,请查看:
http://tmkmobile.wordpress.com/2012/03/04/html5-offline-solution/
答案 2 :(得分:1)
我正在开发一个类似的系统。我做的是创建了Phonegap网页并将它们存储在我的WAMP服务器的www文件夹中。然后我做的是我在onCreate方法中基本上是super.LoadURL(“insert_ip_address_here / insert_name_of_folder_where_webpage_is_located”),这将完美地加载phonegap应用程序(是的,你所需要的只是Android应用程序本身的代码行)。但是,您仍然需要确保正确完成phonegap所需的config.xml,清单和所有配置(有关此操作的说明,请参阅http://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CEAQFjAA&url=http%3A%2F%2Fwww.adobe.com%2Fdevnet%2Fhtml5%2Farticles%2Fgetting-started-with-phonegap-in-eclipse-for-android.html&ei=XfBuUcmKNu684AP3vYDQBw&usg=AFQjCNG16oUTDylMqz20YiiMZTlDxrfbPg&bvm=bv.45368065,d.dmg)。
如果这是您选择追求的道路,请告诉我。我可以提供额外的支持,例如使用多播等方式为本地系统制作ip-address(在行super.loadurl(...)中)动态。