2012-01-02 18 views
6

próbuję użyć localStorage z mojego lokalnego Web App, tutaj jest częścią inicjalizacji WebView:HTML localStorage jest zerowy na Androida przy użyciu 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); 
     } } 

i Oto aplikacja testy na 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); 
     } 
    } 

ale problemem jest to, że localStorage zawsze jest null, i zostały sprawdzone uprawnienia i stworzył WebChromeClient z

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

która nigdy nie zostanie wywołana. Ktoś wie dlaczego?

Dzięki

+0

Czy ustawić niestandardową WebCromeClient na WebView? – Flo

+0

Tak, używam webView.setWebChromeClient ... – Ali

Odpowiedz

Powiązane problemy