Android浏览器的应用程序缓存问题

时间:2013-09-23 05:57:22

标签: html5 android-browser

我正在使用HTML5中与应用程序缓存相关的工作。我在body onload中添加了addCacheListeners()。这适用于移动safari和chrome,但不适用于Android浏览器。当谈到Android浏览器时,会触发错误事件。

function addCacheListeners(){
        var appCache=window.applicationCache;
        if(appCache!== 'undefined'){
            alert("defined");
            appCache.addEventListener('checking', function(e){
                                      }, false);
            appCache.addEventListener('progress', function(e){
                                      }, false);
            appCache.addEventListener('updateready', function(e) {
                                        alert("update is ready");
                                      if (appCache.status == appCache.UPDATEREADY){
                                        appCache.swapCache();
                                        updateappInfo();
                                        }
                                      }, false);
            appCache.addEventListener('noupdate', function(e){
                                        updateappInfo();
                                        }, false);
            appCache.addEventListener('error', function(e){
                                        alert("error" + e.message);
                                      }, false);
            appCache.addEventListener('cached', function(e){
                                        alert("cached");
                                        updateappInfo();
                                      }, false);
        }

        if (appCache=== 'undefined'){alert("undefined");}
    }

有关于此的任何想法吗? 非常感谢。

1 个答案:

答案 0 :(得分:2)

此问题仅适用于Android浏览器,因为它不支持“.manifest”扩展,而且托管服务器中没有MIME类型配置。

因此,尝试将'.manifest'添加为MIME类型之一,但由于它不支持已经附加了其他引用的MIME类型,因此失败了。

添加'.appcache'或'apache'使其正常运行。

<mimeMapfileExtension=".apache"mimeType="text/cache-manifest" /> 

(来源:Load cache manifest file