HTML localStorage is null on Android when using webview
20,931
Have you tried just enabling the setting as per this answer : https://stackoverflow.com/a/5934650/85472
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Author by
Admin
Updated on July 05, 2022Comments
-
Admin almost 2 years
I am trying to use localstorage from my local web APP, here is the WebView initialization part:
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 the test app on 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 the localStorage is always null, I have checked the permissions and created a WebChromeClient with
@Override public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { quotaUpdater.updateQuota(estimatedSize * 2); }
which never gets called. Anyone knows why?
Thanks