我正在使用Cordova(3.4)开发一个移动应用程序。我的核心应用程序文件嵌入在我的应用程序存档(.apk或.ipa)中,并且某些文件(js/html/css)必须从我的服务器中检索。
因此,如果我想让我的应用程序脱机使用,则需要对这些文件使用appcache。
我的appcache.manifest的示例:
CACHE MANIFEST
# version 7
NETWORK:
*
http://*
https://*
CACHE:
# Message module
http://my.server.ip/module/routes.json
http://my.server.ip/module/css/style.css
http://my.server.ip/module/js/controller.js
http://my.server.ip/module/js/service.js
...
我的index.html(嵌入到我的应用程序中):
<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app"
manifest="http://my.server.ip/tmp_appcache.manifest">
...
<body>
<script>
document.addEventListener("deviceready", function(e) {
var appCache = window.applicationCache;
alert('device ready');
console.log('appCache', appCache);
// Fired after the first cache of the manifest.
appCache.addEventListener('cached', function(event) {
console.log(event);
alert('Appcache OK');
}, false);
appCache.addEventListener('UpdateReady', function(event) {
console.log(event);
alert('Appcache Reloaded');
}, false);
appCache.addEventListener('error', function(event) {
console.log(event);
alert('Appcache ERROR');
}, false);
appCache.addEventListener('checking', function(event) {
console.log(event);
alert('Appcache CHECKING');
}, false);
appCache.addEventListener('downloading', function(event) {
console.log(event);
alert('Appcache DOWNLOADING');
}, false);
appCache.addEventListener('noupdate', function(event) {
console.log(event);
alert('Appcache NOUPDATE');
}, false);
appCache.addEventListener('obsolete', function(event) {
console.log(event);
alert('Appcache OBSOLETE');
}, false);
}, false);
</body>
</html>
我的问题是,当我在Android和iOS上启动pp时,没有看到任何警报(“设备就绪”除外),并且没有文件被缓存。
如果在设备浏览器中打开Web应用程序的URL,我实际上会看到警报。
Phonegap中是否有其他配置可允许appcache?
我看过一些有关enabling appcache in Android的文章,但这似乎是针对 Cordova 的旧版本,此外,它对我不起作用,如果这是我的问题的根源,则appcache应该在iOS上工作。
任何想法都会有所帮助。谢谢
最佳答案
Cordova 3.4和更高版本4.0不支持AppCache,并且在不久的将来(截至2015年4月17日)也没有支持该标准的计划。
关于javascript - Cordova应用程序中的Appcache,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22631654/