2012-10-11 55 views
18

Hice una aplicación Android/Phonegap, y está funcionando bien en todos los dispositivos con varias versiones de sistema operativo Android, excepto en algunos teléfonos Gingerbread (2.3). Estoy usando Phonegap 1.9.Excepción de acceso ilegal con LocalStorage en Android Gingerbread

Depurando el código, realicé un illegal access exception en Javascript, cada vez que uso los métodos HTML5 localStorage.getItem() y localStorage.setItem().

¿Cómo puedo habilitar las características localStorage en esos dispositivos Android?

Respuesta

8

La excepción ilegal fue causado por JSON.parse() métodos cuando el .getItem() devuelve un valor nulo. Solo ten cuidado de validarlo. Android 2.3, HTML5 localStorage y Phonegap están funcionando perfectamente ahora.

0

Comprobar el código de WebSettings de su WebView, es decir compruebe lo siguiente se llama:

WebSettings settings = webView.getSettings(); 

settings.setJavaScriptEnabled(true); 

settings.setDatabaseEnabled(true); 

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

settings.setDomStorageEnabled(true); 
+0

Tuve un momento difícil al tratar de averiguar dónde están esas configuraciones. En phonegap, necesitamos llamar a super.appView.getSettings() para acceder a ellos. Sin embargo, es necesario llamar a super.init() antes de hacerlo. De lo contrario, appView viene nulo. Déjame intentar cambiando esos valores como dijiste. –

+0

Probado ya. Todas esas configuraciones son verdaderas, pero no puedo almacenar/recuperar nada todavía. –

0

Esta validación me funciona. :) (javascript en Android 2.3 use phonegap)

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

    } 
Cuestiones relacionadas