是否可以从WebView访问本地存储数据?以下是我需要从应用程序的WebView中读取的Chrome值的屏幕截图。我需要从" Value"获取数据。我的应用中的专栏。
我要做的是,例如,在我的WebView中访问google.com,然后阅读值" 1"来自密钥" nullctx"。
任何有关如何阅读这些值的帮助都将不胜感激。
答案 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中的信息。