HTML localStorage is null for Android when using webview

I am trying to use localstorage from my local web APP, here is part of the initialization of 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); } } 

and here is a test application in 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); } } 

but the problem is that localStorage is always null, I checked permissions and created WebChromeClient with

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

which is never called. Does anyone know why?

thanks

+6
source share
1 answer

Have you tried just turning on the setting according to this answer: fooobar.com/questions/35522 / ...

+8
source

Source: https://habr.com/ru/post/904899/


All Articles