2012-01-18 12 views
9

पेज लोड होने के बाद एंड्रॉइड को एक वेबव्यू स्टोर करने के लिए एंड्रॉइड को मजबूर करने का सबसे अच्छा तरीका क्या होगा?ऑफ़लाइन ब्राउज़िंग के लिए वेबव्यू संग्रहीत करना

कुछ और विवरण:

  • प्रत्येक पृष्ठ छवियों, स्क्रिप्ट और स्टाइल के साथ अमीर हो जाएगा।

  • प्रत्येक पृष्ठ लगभग 0.5 से 1 मेगाबाइट होगा।

  • ऑनफिनिशलोडिंग ओवरराइड कहलाए जाने के बाद वे सहेजे जाएंगे।

  • एसडी कार्ड में इसे सहेजना सबसे अच्छा होगा, फिर इसे वापस खोलने के लिए स्थानीय रेपो का उपयोग करें।

सुनिश्चित नहीं हैं कि अगर मैं सिर्फ WebViews के लिए एक SQL डेटाबेस का उपयोग करना चाहिए, या उन लेने के लिए और एक फाइल करने के लिए एक लेख बाहर है।

यदि मैं बाद वाला करता हूं, तो सबसे आसान तरीका क्या होगा, इसलिए मुझे प्रत्येक फ़ाइल को लिंक करने के लिए एक पूर्ण वेबक्रॉलर लिखना नहीं है?

उत्तर

7

Android पर कैशिंग का उपयोग करने के लिए, आपको अपने HTML के साथ एक HTML5 मेनिफेस्ट फ़ाइल प्रदान करने की आवश्यकता है।

<!DOCTYPE html> 
<html lang="en" manifest="manifest.file"> 
<head> ... 

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

यह आलेख आपको प्राप्त करने के लिए आवश्यक सभी चरणों को बताता है। http://web.archive.org/web/20140314001433/http://alex.tapmania.org/2010/11/html5-cache-android-webview.html

आप इस पृष्ठ का उपयोग कर कैशिंग के लिए एक नमस्ते दुनिया उदाहरण कर सकते हैं: http://html5demos.com/offlineapp

आप एसडी कार्ड पर कैश बचा सकता है, जब तक आप आवेदन प्रकट करने के लिए WRITE_EXTERNAL_STORAGE अनुमति जोड़ें के रूप में।

शुभकामनाएं!

+1

मुझे लगता है, धन्यवाद - यह समझ में आता है। अब इसके साथ 10 एमबी सीमा नहीं है? मेरा मतलब है, मैंने इस स्रोत में भी देखा: webView.getSettings()। SetAppCacheMaxSize (1024 * 1024 * 8); लेकिन, यह अभी भी सवाल उठाता है कि यह कितना बड़ा हो सकता है? शायद प्रति पृष्ठ सिर्फ 10 एमबी? अगर ऐसा होता है, तो कैश किए जाने के बाद, मैं वेबसेट्स का उपयोग करके वेबव्यू को कॉल करता हूं। कैशोनली सही? –

+2

यदि वेबव्यू कैशिंग फ़ोल्डर एसडी कार्ड पर सेट है, तो यह आपके एप्लिकेशन कैश फ़ोल्डर को प्रभावित नहीं करेगा। यह जांचने के लिए आप 'webview.clearCache()' को भी कॉल कर सकते हैं, एसडी कार्ड पर डेटाबेस मिटाया नहीं जाएगा। – Daniel

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