2012-01-02 9 views
6

Sto cercando di utilizzare localStorage dalla mia web locale APP, qui è la parte di inizializzazione WebView:HTML localStorage è nullo su Android quando si utilizzano WebView

static class MyWebView extends WebView 
     { 
      public MyWebView(Context context) 
      { 
      super(context); 

      this.getSettings().setJavaScriptEnabled(true); 

      //enable support for DOM Storage and Database 
      this.getSettings().setDatabaseEnabled(true); 
      this.getSettings().setDomStorageEnabled(true); 


      String databasePath = context.getDir("database", Context.MODE_PRIVATE).getPath(); 

      this.getSettings().setDatabasePath(databasePath); 


      this.setVerticalScrollbarOverlay(true); 
     } } 

ed Ecco l'applicazione di test su JavaScript:

function testStorage() 
    { 
     var storage = window.localStorage; 
     if (storage) { 
      try { 
       storage.setItem("name", "Hello World!"); //saves to the database, “key”, “value” 
      } catch (e) { 

        alert(e.message); //data wasn’t successfully saved due to quota exceed so throw an error 
      } 
      document.write(storage.getItem("name")); //Hello World! 
      storage.removeItem('name'); 
     } 
     else { 
      alert('Your browser does not support HTML5 localStorage. Because Storage is' + storage); 
     } 
    } 

ma il problema è che il localStorage è sempre nullo, ho controllato i permessi e ha creato un WebChromeClient con

@Override 
      public void onExceededDatabaseQuota(String url, 
        String databaseIdentifier, 
        long currentQuota, 
        long estimatedSize, 
        long totalUsedQuota, 
        WebStorage.QuotaUpdater quotaUpdater) 
      { 
       quotaUpdater.updateQuota(estimatedSize * 2); 
      } 

che non viene mai chiamato. Qualcuno sa perché?

Grazie

+0

Avete impostare il WebCromeClient personalizzato sul WebView? – Flo

+0

sì, ho usato webView.setWebChromeClient ... – Ali

risposta

Problemi correlati