我从事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");}
}
对此有什么想法吗?
多谢。
最佳答案
此问题仅适用于Android浏览器,因为它不支持在托管服务器中没有MIME类型配置的“.manifest”扩展。
因此,尝试将“.manifest”添加为一个MIME类型,但失败,因为它不支持作为已附加另一个引用的MIME类型。
添加“.appcache”或“apache”使其正常工作。
<mimeMapfileExtension=".apache"mimeType="text/cache-manifest" />
(来源:Load cache manifest file)