I sent an answer to a similar question. Separate it here for quick access to the answer.
For API> = 19 you can use evaluateJavascript
mWebview.evaluateJavascript("(function(){return window.getSelection().toString()})()", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { Log.v(TAG, "Webview selected text: " + value); } });
For API <19, you can use evaluateJavascript , you use the loadUrl method, as shown below:
mWebview.getSettings().setJavaScriptEnabled(true); mWebview.addJavascriptInterface(new JavaScriptInterface(), "javascriptinterface");
Then, when you want to get the selection, use the following:
mWebview.loadUrl("javascript:javascriptinterface.callback(window.getSelection().toString())");
And define the WebAppInterface class as shown below:
public class JavaScriptInterface { @JavascriptInterface public void callback(String value) { Log.v(TAG, "SELECTION:" + value); } }
source share