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

时间:2016-05-19 14:29:46

标签: android android-webview

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

我要做的是,例如,在我的WebView中访问google.com,然后阅读值" 1"来自密钥" nullctx"。

Chrome local storage

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

1 个答案:

答案 0 :(得分:2)

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

您可以通过`console.log(window.localStorage);

将它们全部打印到控制台

您可以使用Console APIs in WebView从控制台获取内容

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);
  }
});

如果需要,您可以尝试使用以下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>

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