我正在使用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/

10-10 09:34