Android - 如何在WebView中访问本地存储值?

Mar*_*ark 6 android android-webview

是否可以从WebView访问本地存储数据?以下是我需要从应用的WebView中读取的Chrome值的屏幕截图.我需要从我的应用程序中的"值"列中获取数据.

我想要做的是,例如,在我的WebView中访问google.com,然后从"nullctx"键中读取值"1".

Chrome本地存储空间

任何有关如何阅读这些值的帮助将不胜感激.

ank*_*t9j 2

window.localStorage返回本地存储中的所有值。

您可以通过 `console.log(window.localStorage); 将它们全部打印到控制台

您可以在 WebView 中使用Console API从控制台获取内容

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient() {
  public void onConsoleMessage(String message, int lineNumber, String sourceID) {
    Log.d("MyApplication", message + " -- From line "
                         + lineNumber + " of "
                         + sourceID);
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您想要的话,您可以尝试使用以下 HTML

<html>
<body>
value read from localstorage:<input type="text" id="test"><br>
value read from localstorage:<input type="text" id="test2"><p>
Open Console to read all values
<script>
window.localStorage.setItem("name", "Peter");
window.localStorage.setItem("name2", "Tom");
window.localStorage.setItem("name3", "Steve");
window.localStorage.setItem("name4", "Ian");
test.value=window.localStorage["name"];
test2.value=window.localStorage["name3"];
console.log(window.localStorage);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但这适用于存储在页面中的内容。您无法直接从不同域的 iFrame 中的其他页面读取信息。但是,如果您拥有所有这些页面,则可以使用来自Cross-Domain LocalStorage的信息。