webview- window.getselection()值为null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webview- window.getselection()值为null相关的知识,希望对你有一定的参考价值。

我正在开发一个android应用程序,它有一个WebView。在这个网页视图中,当我选择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();

你有什么建议吗?

答案

使用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);
    }
});

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

以上是关于webview- window.getselection()值为null的主要内容,如果未能解决你的问题,请参考以下文章

webview渲染有啥用

想问开了webview有啥用

electron怎么获取到webview里的元素,webview为加载的网站

webview获取网页点击事件

安卓webview是啥东西

如何监听webview加载完成这个事件