iOSのstringByEvaluatingJavaScriptFromStringをAndroidで再現する方法
iOSにはstringByEvaluatingJavaScriptFromStringと言うJavaScriptのStringの返り値を取得する関数があります。
しかしAndroidに同じ関数はありません。単純にJavaScriptを実行したいだけならWebViewのloadurlに以下を指定すれば実行できます。
JavaScriptを実行するJavaのコード
WebView.loadUrl("javascript:foo()");
しかしstringByEvaluatingJavaScriptFromStringのように返り値を取得する場合は以下になります。
実行するJavaScript
function foo(){ alert("foo"); }
実行するJava
WebView webView = (WebView)findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true);//JavaScriptを有効にする webView.loadUrl("javascript:foo()"); webView.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { String foo = message;//ここにJavaScriptのアラートの値が入ってくる result.confirm(); return true; } });