我正在抓取一个网址并尝试将其文本内容发送到网页浏览中的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 + "')");
这是webview中的代码:
function myfunction(val){
document.body.innerHTML = val.length;
}
到目前为止,我只是试图获取文本长度。但是当我使用以前代码的url时,没有任何反应。我从日志中得到了这个:
08-19 23:55:03.141:I / dalvikvm-heap(1846):将堆(frag case)增长到3.551MB,用于262160字节分配 08-19 23:55:03.351:D / dalvikvm(1846):GC_FOR_MALLOC在209ms内释放了0个对象/ 0个字节
但奇怪的是,如果我尝试获取volteck.net/ip,它只包含一个IP号码,它就可以正常使用了!
非常感谢Java新手。
答案 0 :(得分:-1)
试试这个:
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 );