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

时间:2015-02-03 16:49:17

标签: android webview

我正在开发一个应用程序,我需要获取所选文本。

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

之前曾问过这个问题, How to get the selected text in android webview

但没有解决方案。

我正在尝试像myWebView.getSelection()

这样的东西

2 个答案:

答案 0 :(得分:0)

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

对于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);
    }
});

对于API&lt; 19您可以使用evaluateJavascript使用loadUrl方法,如下所示:

mWebview.getSettings().setJavaScriptEnabled(true);
mWebview.addJavascriptInterface(new JavaScriptInterface(), "javascriptinterface");

然后,当您想要进行选择时,请使用以下内容:

mWebview.loadUrl("javascript:javascriptinterface.callback(window.getSelection().toString())");

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

public class JavaScriptInterface
{
    @JavascriptInterface
    public void callback(String value)
    {
        Log.v(TAG, "SELECTION:" + value);
    }
}

答案 1 :(得分:0)

加法 Mahendra Liya 答案:
同样对于API> = 19,您需要启用JavaScript:

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