Can';t从java向javascript发送变量

Can';t从java向javascript发送变量,java,javascript,android,webview,Java,Javascript,Android,Webview,我正在获取一个url,并试图将其文本内容发送到webview中的javascript函数 我从java代码中执行此操作: HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://volteck.net"); // Get the response ResponseHandler<String> responseHandler = new BasicResponseHandle

我正在获取一个url,并试图将其文本内容发送到webview中的javascript函数

我从java代码中执行此操作:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://volteck.net");
// Get the response
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response_str = client.execute(request, responseHandler);

response_str = response_str.replaceAll("\n", "\\");
// this is because js don't support multi-line strings

myWebView.loadUrl("javascript:myfunction('" + response_str + "')");
System.out.println("javascript:myfunction('" + response_str + "')");
到目前为止,我只是想得到文本的长度。但是当我使用前面代码的url时,什么也没有发生。我从日志中得到:

08-19 23:55:03.141:I/dalvikvm堆(1846):为262160字节分配将堆(frag案例)增长到3.551MB 08-19 23:55:03.351:D/dalvikvm(1846):GC_FOR_MALLOC在209ms内释放了0个对象/0个字节

但奇怪的是,如果我试图获取volteck.net/ip,它只包含一个ip号码,那么它就可以正常工作

非常感谢一位Java新手。

试试这个:

ScriptEngineManager manager = new ScriptEngineManager();   
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "function myfunction(val){
document.body.innerHTML = val.length;
}";   
engine.eval(script);   
Invocable inv = (Invocable) engine;
inv.invokeFunction("myfunction", response_str );

你是否试图通过使用system.out打印出来来调用js?我在发布问题时无意中删除了webview中调用js函数的行,现在已编辑,对此表示抱歉。
ScriptEngineManager manager = new ScriptEngineManager();   
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "function myfunction(val){
document.body.innerHTML = val.length;
}";   
engine.eval(script);   
Invocable inv = (Invocable) engine;
inv.invokeFunction("myfunction", response_str );