2012-07-12 7 views
6

मैं प्रदर्शन को स्वीकृति देने के लिए ऐप कैश का उपयोग करने की कोशिश कर रहा हूं।ऐप कैश एंड्रॉइड डिवाइस में काम नहीं करता है (क्रोम ब्राउज़र पर अच्छी तरह से काम करता है)

मुझे विभिन्न साइटों में निर्देशित किया गया है। (उदा। http://xguru.net/621 ...)

cache.man फ़ाइल बनाएं, माइम-प्रकार को टेक्स्ट/कैश-मैनिफेस्ट के रूप में सेट करें।

समस्या है ...

यह गूगल क्रोम ब्राउज़र पर अच्छी तरह से काम, लेकिन मेरे एंड्रॉयड फोन में काम नहीं करता।

मैंने आईसीएस और जिंजरब्रेड में परीक्षण किया।

यह मैनिफेस्ट फ़ाइल है।

CACHE MANIFEST 
# manifest version v0.1 

CACHE: 
./programs.png 
./video.png 

NETWORK: 
* 

और फिर, मैंने इस तरह अपना वेबव्यू सेट किया।

getSettings().setAppCacheEnabled(true); 
getSettings().setDomStorageEnabled(true); 
getSettings().setPluginsEnabled(true); 
getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 

(मैं LOAD_NORMAL, NO_CACHE को cacheMode बदल गया है, लेकिन यह अलग नहीं है।)

कैश राज्य देखने के लिए, मैं इस साइट का उपयोग करें। http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/

var cacheStatusValues = []; 
cacheStatusValues[0] = 'uncached'; 
cacheStatusValues[1] = 'idle'; 
cacheStatusValues[2] = 'checking'; 
cacheStatusValues[3] = 'downloading'; 
cacheStatusValues[4] = 'updateready'; 
cacheStatusValues[5] = 'obsolete'; 

var cache = window.applicationCache; 
cache.addEventListener('cached', logEvent, false); 
cache.addEventListener('checking', logEvent, false); 
cache.addEventListener('downloading', logEvent, false); 
cache.addEventListener('error', logEvent, false); 
cache.addEventListener('noupdate', logEvent, false); 
cache.addEventListener('obsolete', logEvent, false); 
cache.addEventListener('progress', logEvent, false); 
cache.addEventListener('updateready', logEvent, false); 

function logEvent(e) { 
    var online, status, type, message; 
    online = (navigator.onLine) ? 'yes' : 'no'; 
    status = cacheStatusValues[cache.status]; 
    type = e.type; 
    message = 'online: ' + online; 
    message+= ', event: ' + type; 
    message+= ', status: ' + status; 
    if (type == 'error' && navigator.onLine) { 
     message+= ' (prolly a syntax error in manifest)'; 
    } 
    console.log(message); 
} 

window.applicationCache.addEventListener(
    'updateready', 
    function(){ 
     window.applicationCache.swapCache(); 
     console.log('swap cache has been called'); 
    }, 
    false 
); 

अन्त में, यह लॉग मैं अपने एंड्रॉयड फोन पर देखते हैं।

[cache Resource] app cache support! 
[cache Resource] DOWNLOADING 
[cache Resource] event online: yes, event: checking, status: uncached 
[cache Resource] event online: yes, event: downloading, status: uncached 
[cache Resource] event online: yes, event: progress, status: uncached 
[cache Resource] event online: yes, event: progress, status: uncached 
[cache Resource] event online: yes, event: error, status: uncached (prolly a syntax error in manifest) 

छवियां डाउनलोड की गई हैं लेकिन हमें अंतिम पंक्ति में त्रुटि मिलती है। तो यह हमेशा एक uncached में है।

मुझे लगता है कि समस्या वेबव्यू सेटिंग या एंड्रॉइड एप्लिकेशन पर है। लेकिन मैं इसे संभाल नहीं सकता।

मुझे एक टिप एप्लिकेशन संचय का उपयोग करने देने के .. plz ...

+0

समान विफलता मिली ... मैनिफेस्ट में सभी प्रविष्टियों को हटा दिया गया है, इसलिए इसे केवल मास्टर पेज को कैश करना चाहिए: जांचना, डाउनलोड करना, त्रुटि। –

उत्तर

2

परोक्ष रूप से जवाब yugidroid से जुड़े हुए मुझे सही लाइन का नेतृत्व किया। ब्लॉग जो जवाब में जुड़ा हुआ है पता चलता कि क्या करना है:

String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
    webView.getSettings().setAppCachePath(appCachePath); 

मैं परीक्षण के लिए फिर से उन पंक्तियों को हटा दिया: एक ही त्रुटि - readded: कोई त्रुटि!

संबंधित मुद्दे