webview- window.getselection()值即将为空

时间:2019-04-09 11:58:03

标签: android webview

我正在使用一个具有WebView的android应用程序。在此Web视图中,当我选择html文本并执行任何操作时,window.getSelection()即将到来null

一个JavaScript方法window.getSelection()不会每次都从WebView返回选定的文本。为此,许多开发人员向Google提出了问题,但没有解决方案。 https://issuetracker.google.com/issues/36925404

我尝试了所有可能的选项来获得

之类的选择对象

window.getSelection(); window.doument.getSelection(); document.getSelection(); EReader.Selection.Range.getCurrentRange();

您有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用Android API> = 19,您可以使用评估Javascript:

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

在较早的版本中,您应该通过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