我正在使用一个具有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();
您有什么建议吗?
答案 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);
}
}