6

アクティビティからWebビューに文字列値を渡す方法を教えてください。DashboardActivityにURLがロードされたWebビューがあり、そのアクティビティからjavaScriptwindow.onload関数で使用されるWebビューに文字列値を渡したい。その方法を教えてください。

4

2 に答える 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 に答える