2010-11-11 16 views
23

बंद कर दिया मैं एक बहुत बड़ा जो datas प्रदर्शित करने के लिए एक वेब-दृश्य का उपयोग किसी Android एप्लिकेशन विकसित करने की समस्या का सामना कर रहा हूँ वेब-दृश्य DomStorage सतत् बनाना। वेबसाइट मैं वेबव्यू में उपयोग कर रहा हूँ एचटीएमएल 5 के localStorage एपीआईएंड्रॉयड - के बाद एप्लिकेशन

का उपयोग इस सुविधा मैं वेबव्यू इस तरह की स्थापना निर्धारित किया है सक्षम करने के लिए:

webview.getSettings().setDomStorageEnabled(true); 
webview.getSettings().setJavaScriptEnabled(true); 

तो localStorage एपीआई काम करता है लेकिन जब मैं इसे बंद ऐप (और प्रक्रिया को मार डालो), स्थानीय स्टोरेज पूरी तरह से मिटा दिया गया है और जब मैं इसे पुनः लोड करता हूं, तो मेरे सभी डेटा खो जाते हैं।

मेरा प्रश्न सरल है: कैसे एक वेब-दृश्य की DomStorage भी लगातार बनाने के लिए जब हम ऐप को बंद?

सब आप भविष्य जवाब के लिए धन्यवाद।

+2

मैं समाधान ढूंढ लेते हैं तो आप datas को बचाने के लिए DatabasePath निर्धारित करने की आवश्यकता:।) webview.getSettings() setDatabasePath (; – jimroot25

+1

आप साझा कर सकते हैं क्या जिस मार्ग को आप इसे सेट करते हैं? मैं facin हूँ जी अब एक ही समस्या है। – dongshengcn

+0

क्या मेरा उत्तर आपकी समस्या का समाधान करता है? – Panthro

उत्तर

10

आप DatabasePath सेट किया है? जहां डिफ़ॉल्ट रूप से DOMDatabase को बचाने के लिए एंड्रॉयड, पता नहीं है अगर आप इसे बुला

+1

नोट करें कि आप केवल एक बार सेटडेटाबेस पथ को कॉल कर सकते हैं - बाद की कॉलों को अनदेखा कर दिया जाता है। आपको वेबकिट को फिर से लोड करने के लिए मजबूर करने की आवश्यकता है (कॉलिंग गतिविधि.फिनिश() इसकी गारंटी नहीं देगी) किसी भी बाद की कॉल – gheese

9
// Confimed on android 2.1 emulator 
// enable javascript localStorage 

WebSettings webSettings = myWebView.getSettings(); 
webSettings.setDomStorageEnabled(true); // localStorage 

// e.g., if your package is www.myapp.whatever; 
webSettings.setDatabasePath("/data/data/www.myapp.whatever/databases/"); 
+0

को एंड्रॉइड 2.2 के बारे में क्या प्रभावित करती है, चाहे वह काम कर रही हो या नहीं, क्योंकि 2.1 में मेरे लिए काम कर रहा है लेकिन नहीं 2.2 – Karthi

+0

में आप "setDatabasePath पदावनत" क्रोमियम वेबकिट ब्राउज़र में इस प्रयोग के साथ त्रुटि, कर रहे हैं पथ ही संभालती है। [अधिक के लिए यह उत्तर देखें] (http://stackoverflow.com/questions/21319279/android-webview-setdatabasepath-deprecated) –

6

आप डेटाबेस सक्षम करना होगा और साथ ही अपने रास्ते सेटिंग सेट नहीं है:

webview.getSettings().setDatabaseEnabled(true); 
webview.getSettings().setDatabasePath(); 
webSettings.setDomStorageEnabled(true); 

पहली पंक्ति मुझे काफी देर के लिए बाहर पकड़ लिया ...

0

ऊपर पोस्ट दो विभिन्न अवधारणाओं मिश्रण है:

के बाद सत्र बंद कर दिया है सुनिश्चित करें कि आप (अपने जावास्क्रिप्ट पर) का उपयोग नहीं कर रहे हैं sessionStorage

DOMStorage और डेटाबेस भंडारण दो अलग बातें हैं अपने डेटा जारी रहती है बनाने के लिए। डाटाबेस स्टोरेज एचटीएमएल 5 का हिस्सा नहीं है: http://www.tutorialspoint.com/html5/html5_web_sql.htm

डोमस्टोरेज एचटीएमएल 5 से अधिक संबंधित है और इसमें सत्र भंडारण शामिल है, जो डिज़ाइन- जब आप अपना ब्राउज़र बंद करते हैं तो गायब हो जाएगा। आप इस प्रकार खोज "स्थानीय भंडारण 'कि' डोम भंडारण 'के माध्यम से अधिक हिट मिल जाएगा

http://viralpatel.net/blogs/introduction-html5-domstorage-api-example/

, DOMstorage सक्षम करने के लिए आप सिर्फ इस की जरूरत है:। webSettings.setDomStorageEnabled (सही);

0

यह समस्या । एंड्रॉयड v4.1.1 के लिए एक अद्यतन के साथ in this post उत्तर दिया गया

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