2012-10-11 15 views
18

मैंने एक एंड्रॉइड/फोनगैप ऐप बनाया है, और यह कुछ जिंजरब्रेड (2.3) फोन को छोड़कर, कई एंड्रॉइड ओएस संस्करणों के साथ सभी उपकरणों पर ठीक चल रहा है। मैं फोनगैप 1.9 का उपयोग कर रहा हूँ।एंड्रॉइड जिंजरब्रेड पर स्थानीय स्टोरेज के साथ अवैध पहुंच अपवाद

कोड डीबग करना, मैं जावास्क्रिप्ट पर एक illegal access exception, हर बार जब मैं एचटीएमएल 5 localStorage.getItem() और localStorage.setItem() तरीकों का उपयोग का एहसास हुआ।

मैं उन एंड्रॉइड डिवाइस पर localStorage सुविधाओं को कैसे सक्षम कर सकता हूं?

उत्तर

8

अवैध अपवाद() पद्धतियों JSON.parse की वजह से किया गया था जब .getItem() अशक्त देता है। बस इसे सत्यापित करने के लिए सावधान रहें। एंड्रॉइड 2.3, एचटीएमएल 5 लोकल स्टोरेज और फोनगैप अब पूरी तरह से काम कर रहे हैं।

0

चेक अपने WebView के WebSettings के लिए कोड, यानी निम्नलिखित की जाँच कहा जाता है:

WebSettings settings = webView.getSettings(); 

settings.setJavaScriptEnabled(true); 

settings.setDatabaseEnabled(true); 

settings.setDatabasePath(this.getApplicationContext() 
     .getDir("database", Context.MODE_PRIVATE).getPath()); 

settings.setDomStorageEnabled(true); 
+0

मुझे यह पता लगाने की कोशिश करके कठिन समय था कि ये सेटिंग्स कहां हैं। फोनगैप के तहत, हमें उन तक पहुंचने के लिए super.appView.getSettings() को कॉल करने की आवश्यकता है। हालांकि, ऐसा करने से पहले super.init() को कॉल करना आवश्यक है। अन्यथा, ऐप व्यू शून्य आता है। जैसा कि आपने कहा था वैल्यू को बदलकर मुझे आज़माएं। –

+0

पहले से ही परीक्षण किया गया। ये सभी सेटिंग्स सत्य हैं, लेकिन मैं अभी भी कुछ भी स्टोर/पुनः प्राप्त करने में सक्षम नहीं हूं। –

0

यह सत्यापन मेरे लिए काम करता है। :) (एंड्रॉइड 2.3 में जावास्क्रिप्ट का उपयोग करें फोनगैप)

Storage.prototype.getArray = function(key) { 
     if (this.getItem(key)) { 
      return JSON.parse(this.getItem(key)) 
     } else { 
      //console.log("no error null value"); 
     } 

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