Javascript Cordova应用程序中的Appcache

Javascript Cordova应用程序中的Appcache,javascript,cordova,cordova-3,html5-appcache,Javascript,Cordova,Cordova 3,Html5 Appcache,我正在使用Cordova(3.4)开发一个移动应用程序。我的核心应用程序文件嵌入到我的应用程序存档(.apk或.ipa)中,一些文件(js/html/css)必须从我的服务器检索。 因此,如果我希望我的应用程序可以脱机使用,我需要对这些文件使用appcache my appcache.manifest的示例: CACHE MANIFEST # version 7 NETWORK: * http://* https://* CACHE: # Message module http://my.

我正在使用Cordova(3.4)开发一个移动应用程序。我的核心应用程序文件嵌入到我的应用程序存档(.apk或.ipa)中,一些文件(js/html/css)必须从我的服务器检索。 因此,如果我希望我的应用程序可以脱机使用,我需要对这些文件使用appcache

my 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
...
My index.html(嵌入到我的应用程序中):


...
文件.增补的监听器(“deviceready”,功能(e){
var appCache=window.applicationCache;
警报(“设备就绪”);
log('appCache',appCache);
//在清单的第一个缓存后激发。
appCache.addEventListener('cached',函数(事件){
console.log(事件);
警报('Appcache OK');
},假);
appCache.addEventListener('UpdateReady',函数(事件){
console.log(事件);
警报(“Appcache已重新加载”);
},假);
appCache.addEventListener('error',函数(事件){
console.log(事件);
警报(“Appcache错误”);
},假);
appCache.addEventListener('checking',函数(事件){
console.log(事件);
警报(“Appcache检查”);
},假);
appCache.addEventListener('downloading',函数(事件){
console.log(事件);
警报(“Appcache下载”);
},假);
appCache.addEventListener('noupdate',函数(事件){
console.log(事件);
警报(“Appcache NOUPDATE”);
},假);
appCache.addEventListener('过时',函数(事件){
console.log(事件);
警报(“Appcache过时”);
},假);
},假);
我的问题是,当我启动我的pp(在Android和iOS上)时,我没有看到任何警报(除了“设备就绪”),也没有缓存任何文件。

如果我在设备浏览器中打开我的webapp的url,我实际上会看到我的警报

Phonegap中是否有允许appcache的附加配置

我看过一些关于的文章,但它似乎适用于旧版本的cordova,而且它对我不起作用,如果这是我问题的根源,appcache应该在iOS上工作


任何想法都会有帮助。感谢您,Cordova 3.4和4.0之前都不支持AppCache,近期(截至2015年4月17日)也没有支持该标准的计划。

基本上您不需要AppCache。查看下面的链接以了解更多信息


几个小时以来,我一直在寻找同一个问题的答案,但到目前为止还没有找到一种使用html5缓存清单的清晰(有效)方法……我已经创建了一个。关于这个问题的另一个问题也许这篇文章可以帮助你理解我的问题,因为我说过我的核心应用程序文件嵌入了我的应用程序存档中(.apk或.ipa)和一些文件(js/html/css)必须从我的服务器检索。因此,本文不相关。我知道了。我不确定您的确切使用情况,但作为最佳实践,请尝试将这些文件保存在应用程序包中,以防您希望脱机使用这些文件。
<!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>