Android Webview:如何在webview中复制选中的文本。

Android Webview : How to copy selected text in webview.

我是 android 开发新手,我正在创建一个应用程序来将 selected webview 内容存储到 sqlite 数据库中。当 word 的用户 select 时,自定义上下文操作栏将显示在 webview 中。现在我需要在 WebView 中获取 selected word。关于如何在 WebView 中获取 selected word 和 return 作为字符串的任何想法?

谢谢

WebView 获取文本选择的唯一方法是基于 javascript。这并非特定于操作模式,根据 WebView 开发人员的观点,这就是 WebView 文本选择应该如何检索。他们故意决定不提供 API 来访问 Java.

中的文本选择

解决方案包括 2 种方法。

使用 Android API >= 19 你可以使用 evaluateJavascript:

webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
    @Override
    public void onReceiveValue(String value)
    {
        Log.v(TAG, "SELECTION:" + value);
    }
});

在较旧的版本中,您唯一的选择是自定义 javascript 接口,其中包含一个接受 String 的方法,您应该通过 webview.loadUrl 传递相同的东西来调用它:

webview.loadUrl("javascript:js.callback(window.getSelection().toString())");

其中 js 是附加的 javascript 接口:

webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new WebAppInterface(), "js");

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

Reference: