如何在WebView Android中获取选定文本

如何在WebView Android中获取选定文本,android,webview,Android,Webview,我正在开发一个应用程序,在其中我需要获取选定的文本 我有一个自定义上下文操作栏,当用户在webview中选择文本时,它会显示出来。我想在点击我的操作栏按钮时,在选择处理程序下获得高亮显示的文本 之前有人问过这个问题, 但没有解决办法 我正在尝试myWebView.getSelection()之类的东西。我发布了一个类似问题的答案。在此处共享,以便快速访问答案 对于API>=19,您可以使用evaluateJavascript mWebview.evaluateJavascript("(func

我正在开发一个应用程序,在其中我需要获取选定的文本

我有一个自定义上下文操作栏,当用户在webview中选择文本时,它会显示出来。我想在点击我的操作栏按钮时,在选择处理程序下获得高亮显示的文本

之前有人问过这个问题,

但没有解决办法


我正在尝试myWebView.getSelection()之类的东西。

我发布了一个类似问题的答案。在此处共享,以便快速访问答案

对于API>=19,您可以使用
evaluateJavascript

mWebview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
    @Override
    public void onReceiveValue(String value)
    {
        Log.v(TAG, "Webview selected text: " + value);
    }
});
然后,当您想要获得选择时,请使用以下命令:

mWebview.loadUrl(“javascript:javascriptinterface.callback(window.getSelection().toString())”

并定义一个WebAppInterface类,如下所示:

public class JavaScriptInterface
{
    @JavascriptInterface
    public void callback(String value)
    {
        Log.v(TAG, "SELECTION:" + value);
    }
}
添加Mahendra Liya答案:
对于API>=19,还需要启用JavaScript:

WebSettings settings = yourWebview.getSettings();
settings.setJavaScriptEnabled(true);

我认为你应该回顾一下:
WebSettings settings = yourWebview.getSettings();
settings.setJavaScriptEnabled(true);