Android 4.4中evaluateJavascript函数的接收值为空
我使用webview和Android 4.4(Kitkat)来查看htmls,并使用javascript进行搜索、突出显示等。当我等于onReceiveValue中字符串s选择的字符串时,所选字符串仍然为空,那么如何将onReceiveValue中的字符串s输出到我的android代码中 这是我的代码: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
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?