2016-05-19 34 views
4

WebViewからローカルストレージデータにアクセスできますか?ここに、私のアプリのWebViewから読みたい値のChromeのスクリーンショットがあります。私は、アプリケーションの "値"列からデータを取得する必要があります。Android - WebViewでローカルストレージの値にアクセスする方法

たとえば、私のWebViewでgoogle.comに行き、 "nullctx"キーから値 "1"を読んでみようとしています。

Chrome local storage

これらの値を読み取る方法の任意の助けいただければ幸いです。

+0

あなたの質問は私には分かりません:Javascriptを使用してウェブビューからローカルストレージにアクセスしようとしていますか?または、Webビューからローカルストレージに何かを保存し、それをJavaコードから読み取ろうとしていますか? – racs

+0

私はちょうど値を読み取ろうとしています。javascriptがそれを行う唯一の方法であれば、それは私が知る必要があるものです。ローカルストレージに値を保存しているWebページがあり、Chromeを使用してデスクトップ上で値を確認できます。私はちょうどWebViewから私のアプリでこれらの値を読み取る必要があります。 – Mark

+0

あなたがそこに保存したものを読み返すことができます。それ以外の場合は明らかに大きなセキュリティ上の問題になります。まず最初に、コンセプトに慣れていない場合は、ローカルストアで作業する方法です。http://www.w3schools.com/html/html5_webstorage.aspまた、保存する前にウェブビューでウェブストレージを有効にする必要があります何か:http://stackoverflow.com/questions/5899087/android-webview-localstorage私はこれが役立つことを願っています、多分これはあなたが探しているものではありません。 – racs

答えて

1

window.localStorageは、ローカルストレージのすべての値を返します。

`console.log(window.localStorage);ですべてをコンソールに出力できます。

あなたは `

<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> 

をしたいしかし、これはあなたのページに格納されているもののためになっている場合は、次のHTMLを試すことができますコンソール

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

からのものを得るためにConsole APIs in WebViewを使用することができます。別のドメインからiFrameの他のページから直接情報を読み取ることはできません。ただし、これらのページをすべて所有している場合は、Cross-Domain LocalStorageの情報を使用できます。

+0

をチェックすることができます残念ながら、私はウェブページにアクセスすることができません。たとえば、WebViewでgoogle.comに行き、ローカルストレージから「nullctx」というキー(上記のスクリーンショットの例)の値「1」を読み込みます。 – Mark

+0

google.comがwebviewで開いていて、iframeで開かれていないメインページであれば、 'window.localStorage [" nullctx "]'で読むことができます。 http://stackoverflow.com/questions/21552912/android-web-view-info-local-javascript-file-to-remote-webpage 可能な場合は、google.comにconsole.logのコードを挿入できます。 Chromeのインスペクタで値を取得すると、webviewで取得できます。 google.comを開いてGoogle Chromeコンソールで 'window.localStorage'を試すことができます – ankit9j

関連する問題