Kitkatからは戻り値を取得することも可能。
サンプルコード
WebView webView;
webView = (WebView) findViewById(R.id.webview);
// アラート表示用
webView.setWebChromeClient(new WebChromeClient());
String script = "alert('test'); return 'called script!!'";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(script, new ValueCallback() {
@Override
public void onReceiveValue(String retValue) {
Log.d("script result", retValue);
}
});
}
else {
webView.loadUrl("javascript:" + script);
}
バージョンによって処理を切り替えている。
Kitkatより前(4.4未満)はjavascriptの戻り値を取得するのに一手間必要だが個人的に対応する予定がないので割愛。