从Android 4.4中的evaluateJavascript函数清空接收到的值

时间:2014-11-10 09:19:16

标签: javascript android android-webview android-4.4-kitkat

我正在使用带有Android 4.4(Kitkat)的webview来查看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; 
     }} 
     ); 

非常感谢。

1 个答案:

答案 0 :(得分:0)

问题是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!
    }}
);