从Android 4.4中的evaluatteJavascript函数接收到的值为空

Empty received value from evaluateJavascript function in Android 4.4

本文关键字:Android 中的 evaluatteJavascript 函数      更新时间:2023-09-26

我使用webview和Android 4.4(Kitkat)来查看htmls,并使用javascript进行搜索、突出显示等。当我等于onReceiveValue中字符串s所选的字符串时,所选的仍然为空,所以我如何将onReceiveValue的字符串s输出到我的Android代码

这是我的代码:

     String selected="";
     webview.evaluateJavascript("javascript:(function(){" 
       + "var txt = window.getSelection();"
      +"return txt;" + 
       "})();" ,new ValueCallback<String>() {
      @Override
      public void onReceiveValue(String s) {
      Log.d("LogName", s); //s is empty!
       selected=s; 
     }} 
     ); 

非常感谢。

问题是window.getSelection()返回一个对象,需要将其转换为字符串。

theWebView.evaluateJavascript("javascript:(function(){"
        + "var selObj = window.getSelection();"
        + "var selTxt = selObj.toString();"
        + "return selTxt;"
        + "})();" ,new ValueCallback<String>() {
    @Override
    public void onReceiveValue(String s) {
        Log.d("LogName", s); //s is NOT empty!
    }}
);