在Cordova应用程序中的Appcache

Tak*_*ako 7 javascript html5-appcache cordova cordova-3

我正在使用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
...
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我启动我的pp(在Android和iOS上)时,我没有看到任何警报(除了"设备就绪"),并且没有缓存文件.

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

在Phonegap中是否有其他配置可以实现appcache?

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

任何想法都会有所帮助.谢谢

cod*_*ion 1

Cordova 3.4 及 4.0 版本不支持 AppCache,并且在不久的将来(截至 2015 年 4 月 17 日)没有计划支持该标准。