Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 4.4中evaluateJavascript函数的接收值为空_Javascript_Android_Android Webview_Android 4.4 Kitkat - Fatal编程技术网

Android 4.4中evaluateJavascript函数的接收值为空

Android 4.4中evaluateJavascript函数的接收值为空,javascript,android,android-webview,android-4.4-kitkat,Javascript,Android,Android Webview,Android 4.4 Kitkat,我使用webview和Android 4.4(Kitkat)来查看htmls,并使用javascript进行搜索、突出显示等。当我等于onReceiveValue中字符串s选择的字符串时,所选字符串仍然为空,那么如何将onReceiveValue中的字符串s输出到我的android代码中 这是我的代码: String selected=""; webview.evaluateJavascript("javascript:(function(){" + "var

我使用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; 
     }} 
     ); 
String selected=”“;
evaluateJavascript(“javascript:(函数(){”
+“var txt=window.getSelection();”
+“返回txt;”+
“}();”,新值回调(){
@凌驾
公共void onReceiveValue(字符串s){
Log.d(“LogName”,s);//s为空!
所选=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!
    }}
);
webview.evaluateJavascript(“javascript:(函数(){”
+“var selObj=window.getSelection();”
+“var selvtxt=selObj.toString();”
+“返回selTxt;”
+“}();”,新值回调(){
@凌驾
公共void onReceiveValue(字符串s){
Log.d(“LogName”,s);//s不是空的!
}}
);

这是否意味着我可以通过类中的外部字符串值来等于s?