How to get return value from javascript in WebView of Android? How to get return value from javascript in WebView of Android? android android

How to get return value from javascript in WebView of Android?


Same as Keith but shorter answer

webView.addJavascriptInterface(this, "android");webView.loadUrl("javascript:android.onData(functionThatReturnsSomething)");

And implement the function

@JavascriptInterfacepublic void onData(String value) {   //.. do something with the data}

Don't forget to remove the onData from proguard list (if you have enabled proguard)


Here's a hack on how you can accomplish it:

Add this Client to your WebView:

final class MyWebChromeClient extends WebChromeClient {        @Override        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {            Log.d("LogTag", message);            result.confirm();            return true;        }    }

Now in your javascript call do:

webView.loadUrl("javascript:alert(functionThatReturnsSomething)");

Now in the onJsAlert call "message" will contain the returned value.


Use addJavascriptInterface() to add a Java object to the Javascript environment. Have your Javascript call a method on that Java object to supply its "return value".