2012-06-06 11 views
19

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

धन्यवाद!

उत्तर

66

तुम बस कोड की इस पंक्ति का उपयोग कर सकते हैं:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]]; 

आशा आप यही चाहते है।

+1

हां मुझे यह पता है, लेकिन मैंने जो पूछा है वह "बिना: खाली" लोड किए बिना एक तरीका है यदि आप मेरा प्रश्न पढ़ते हैं। धन्यवाद औश्र सबकुछ वही है! – hzxu

+0

आप ऐसा नहीं कर सकते जो आपको चाहिए कि आपको ऐसा करना है, ऐसा करने का कोई और तरीका नहीं है। –

+1

मुझे लगता है कि इसे उत्तर के रूप में चिह्नित किया जाना चाहिए। – neevek

25
इस

मेरे लिए चाल किया:

[webView stringByEvaluatingJavaScriptFromString:@"document.open();document.close()"]; 
+1

बहुत बढ़िया! यह वर्तमान में इस विषय के लिए सबसे अच्छा और तेज़ समाधान है। धन्यवाद! –

+0

ग्रेट वन! बहुत तेज़! –

+1

मैंने पाया कि यह समाधान एक बड़े वेबव्यू की सफाई करते समय लंबे समय तक 4 सेकंड तक मेरे मुख्य धागे को अवरुद्ध करता है। –

7

इस बाहर की कोशिश करो। यह मेरे लिए काम किया

[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"]; 
+0

यह बिल्कुल ठीक है कि मुझे चाहिए। बहुत बहुत धन्यवाद। – Deepak

+0

निश्चित रूप से सबसे तेज़ तरीका! धन्यवाद – dreampowder

0

यदि आपका समस्या सिर्फ स्पिनर गायब हो जाता है कि जब आप एक रिक्त पृष्ठ लोड करते हैं, आप webViewDidFinishLoad में इस कोड का उपयोग कर सकते हैं:

– (void)webViewDidFinishLoad:(UIWebView *)currentWebView { 
    if (![currentWebView.request.URL.description isEqualToString: @"about:blank"]) { 
     self.mySpinner.hidden = YES; 
    } 
} 

... तो स्पिनर जाना होगा जब तक आपका वेबव्यू वास्तव में लोड नहीं हो जाता है।

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