0

Android 中的 PhoneGap 应用程序没有使用缓存文件。但是 HTML5 应用程序缓存已启用并正确触发事件。

我有一个网站使用 HTML5 应用程序缓存:

索引文件:

<!DOCTYPE html>
<html manifest="cache.appcache">
<head>
    <link rel="stylesheet" type="text/css" href="site.css">
</head>
<body>
    <div>
        Hello World
    </div>
</body>
</html>

css 文件:

div{
    background-color: red;
}

应用缓存文件:

CACHE MANIFEST
#v1

CACHE:
site.css

它在 Chrome、iOS Web Broswer、iOS 中的 PhoneGap、Android 2.1 Web Broswer 中运行良好。但它在 Android 的 PhoneGap 中不起作用!

我使用命令行创建了 Android PhoneGap 应用程序,只需将启动 url 修改为我的网站。应用程序将正确触发应用程序缓存事件:

// Fired after the first cache of the manifest.
appCache.addEventListener('cached', handleCacheEvent, false);

// Checking for an update. Always the first event fired in the sequence.
appCache.addEventListener('checking', handleCacheEvent, false);

// An update was found. The browser is fetching resources.
appCache.addEventListener('downloading', handleCacheEvent, false);

我没有修改cache.appcache文件!并且事件显示缓存没有修改。但它不使用应用程序缓存。它出什么问题了?

4

1 回答 1

0

PhoneGap 2.5 的发行说明告诉我们它支持应用程序缓存,并修复了问题。(在旧版本中,您需要编写一些代码并启用应用程序缓存)

我使用PhoneGap 2.6,应用程序缓存不起作用,但是当我编写一些代码来启用它时,它运行良好。

像这样的代码:

public class HelloWorld extends DroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml

        super.init();
        android.webkit.WebSettings settings = super.appView.getSettings();
        String appCachePath = this.getCacheDir().getAbsolutePath();
        settings.setAppCachePath(appCachePath);
        settings.setAllowFileAccess(true);
        settings.setAppCacheEnabled(true);

        // super.loadUrl(Config.getStartUrl());
        super.loadUrl("http://192.168.0.104:8080/cache/index.html");
    }
}
于 2013-04-30T16:19:07.973 回答