アクティビティからWebビューに文字列値を渡す方法を教えてください。DashboardActivityにURLがロードされたWebビューがあり、そのアクティビティからjavaScriptwindow.onload関数で使用されるWebビューに文字列値を渡したい。その方法を教えてください。
質問する
12403 次
2 に答える
16
ユースケースに応じて、これを実現するさまざまな方法があります。難しいのは、onloadメソッドで何かをしたいということです。
ページの読み込み後に文字列を渡すことができる場合は、次を使用できます。
String jsString = "javascript:addData('" + theString + "');");
webView.loadUrl(jsString);
ページのonloadメソッドでアクセス可能なデータが本当に必要な場合は、可能であれば、呼び出されるURLを変更してクエリデータを含めることができます。何かのようなもの:
String urlWithData = yourUrl + "?data=" + theString;
webView.loadUrl(urlWithData);
次に、標準のJavaScriptを使用してwindow.location.searchを解析し、データを取得します。
最後に、何らかの理由でURLを変更できない場合は、コールバックオブジェクトを使用して、JavaScriptに値を取得させることができます。
private class StringGetter {
public String getString() {
return "some string";
}
}
次に、URLをロードする前にこのコールバックを使用してwebViewを構成する場合:
webView.addJavascriptInterface(new StringGetter(), "stringGetter");
そして、あなたが使うことができるページのonloadメソッドで:
var theString = stringGetter.getString();
お役に立てれば!
于 2012-09-19T08:36:25.400 に答える
2
ロードされたWebページで入力フィールドが選択されている場合は、次のことを試すことができます。
String pasteData = "a string value to paste into the webview"
String javaScript = "javascript:document.activeElement.setAttribute('value','"+pasteData+"');";
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.requestFocus(View.FOCUS_DOWN);
mWebView.loadUrl(javaScript);
于 2015-04-06T04:13:33.697 に答える