0

我正在获取一个 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 + "')");

这是 webview 中的代码:

function myfunction(val){
    document.body.innerHTML = val.length;
    }

到目前为止,我只是想获得文本长度。但是当我使用之前代码的 url 时,什么也没有发生。我从日志中得到这个:

08-19 23:55:03.141: I/dalvikvm-heap(1846): 将堆(碎片情况)增加到 3.551MB 以分配 262160 字节 08-19 23:55:03.351: D/dalvikvm(1846): GC_FOR_MALLOC 已释放0 个对象 / 0 个字节在 209 毫秒内

但奇怪的是,如果我尝试获取 volteck.net/ip,它只包含一个 IP 号码,它工作得很好!

非常感谢 Java 新手。

4

1 回答 1

-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 );
于 2013-08-20T05:47:54.680 回答