Yeah, I miss this method greatly in Android 😉
To execute JavaScript and get response you can do as follows:
-
Define JavaScript callback interface in your code:
class MyJavaScriptInterface { @JavascriptInterface public void someCallback(String jsResult) { // your code... } }
-
Attach this callback to your WebView
MyJavaScriptInterface javaInterface = new MyJavaScriptInterface(); yourWebView.addJavascriptInterface(javaInterface, "HTMLOUT");
-
Run your JavaScript calling
window.HTMLOUT.someCallback
from the script:yourWebView.loadUrl("javascript:( function () { var resultSrc = document.getElementById(\"image\").getAttribute(\"src\"); window.HTMLOUT.someCallback(resultSrc); } ) ()");
Hope this helps!