我正在开发一个应用程序,我需要获取所选文本。
我有一个自定义上下文操作栏,当用户在webview中选择文本时会显示该操作栏。我想在选择处理程序下获得突出显示的文本,点击我的操作栏按钮。
之前曾问过这个问题, How to get the selected text in android webview
但没有解决方案。
我正在尝试像myWebView.getSelection()
这样的东西答案 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);