2012-03-16 25 views
19

मैं कैश के बिना एक वेबव्यू लोड करना चाहता हूं?कैश के बिना UIwebview

//Create a URL object. 
NSURL *url = [NSURL URLWithString:urlAddress]; 
//URL Request Object 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
//Load the request in the UIWebView. 
[kdgWebView loadRequest:requestObj]; 

सहायता के लिए धन्यवाद।

जीन।

उत्तर

34

ऑब्जेक्टिव-सी:

// Remove and disable all URL Cache, but doesn't seem to affect the memory 
[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
[[NSURLCache sharedURLCache] setDiskCapacity:0]; 
[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 

आप http://blog.techno-barje.fr/post/2010/10/04/UIWebView-secrets-part2-leaks-on-release/

स्विफ्ट में अधिक जानकारी प्राप्त कर सकते हैं:

NSURLCache.sharedURLCache().removeAllCachedResponses() 
NSURLCache.sharedURLCache().diskCapacity = 0 
NSURLCache.sharedURLCache().memoryCapacity = 0 
+0

मेरे लिए काम नहीं करता है ? कैश किए गए डेटा को लोड किया जाता है भले ही मैं इसे कोड में डालूं। –

+0

आप कैश नीति – LuisEspinoza

+0

बदल सकते हैं उत्तर के लिए बहुत बहुत धन्यवाद। यह समाधान मेरे लिए काम करता है, जहां मैं UIWebView का उपयोग कर रहा हूं और मैं इंटरनेट कनेक्शन नहीं होने पर कैश किए गए पृष्ठों को लोड नहीं करना चाहता था। –

12

आप अपने संचय नीति को बदल सकते हैं, कोड का उपयोग:

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url 
             cachePolicy:NSURLRequestReloadIgnoringCacheData 
            timeoutInterval: 10.0]; 
+0

क्या आपने इसे आजमाया? – LuisEspinoza

+0

धन्यवाद, मुझे कारण मिला, कैश क्यों लोड हो रहा था ... मैंने कैश मैनिफेस्ट का उपयोग किया, और एचटीएमएल 5 में कैश मैनिफेस्ट के साथ एक बग है। –

0

I यहां एक समान प्रश्न का उत्तर देने का प्रयास करें। मुझे आशा है कि यह आपके लिए उपयोगी था! अंतिम समाधान एचटीएमएल के लिए काम करता है लेकिन एचटीएमएल में जुड़े छवियों, सीएसएस और जेएस के लिए नहीं।

How to clear UIWebView cache?

0

मैं इन समाधानों में से सभी की कोशिश की है लेकिन उनमें से कोई हर बार काम करते हैं। मेरा मुख्य परीक्षण HTML पृष्ठ में पृष्ठभूमि के रूप में एक छवि सेट के साथ एक HTML पृष्ठ था। यह HTML पृष्ठ और छवि मेरे आईपैड पर एक "सिंक" विधि के माध्यम से स्थानीय रूप से डाउनलोड की गई है। कैश को पूरी तरह से रीसेट करने का एकमात्र तरीका है एचटीएमएल पेज में छवि के यूआरएल को लगातार बदलना, इसलिए यह सोचता है कि यह हर बार एक अनूठी छवि है। मेरी html में उदाहरण के लिए:

<body background="image.png?v123"> 

तो मैं मैं संस्करण संख्या को अपडेट करना होगा प्रत्येक पेज पर परिवर्तन:

<body background="image.png?v1234"> 

आदि, आदि आप किसी भी तरह यूआरएल आप चाहते हैं, बस बदल सकते हैं यह अलग होना है।

ठीक है, मैं ऐसा करने से थक गया हूं। अब जब मैं स्थानीय रूप से सामग्री डाउनलोड करता हूं, तो मैं इसके बजाय फ़ोल्डर के नाम को गतिशील रूप से बदल रहा हूं। चूंकि यह फ़ोल्डर एक मूल फ़ोल्डर है और मेरे सभी लिंक सापेक्ष हैं इसका मतलब है कि मुझे हर बार अपनी एचटीएमएल फाइलों को संपादित करने की ज़रूरत नहीं है। अब तक यह ठीक काम कर रहा प्रतीत होता है। मेरी इच्छा है कि ये अन्य विधियां सुसंगत हों क्योंकि कैश को रीसेट करना इतना आसान होगा।

मेरे अनुरोध अपनी baseurl जो अपने कैश रीसेट करने के लिए खड़ी कर रहा है, नहीं मेरा url या पृष्ठभूमि छवि, या सीएसएस फ़ाइल, आदि के लिए क्वेरी स्ट्रिंग में

तो, आदि

NSString *myURL = @"index.html"; 
NSURL *baseURL = [NSURL fileURLWithPath:@"FULL_PATH_TO_DOCS/MYFOLDERV123"]; 
[myTargetWebView loadHTMLString:myURL baseURL:baseURL];