0

URL をフェッチして、そのテキスト コンテンツを Web ビュー内の 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 ケース) を 262160 バイト割り当ての 3.551MB に拡張 08-19 23:55:03.351: D/dalvikvm(1846): GC_FOR_MALLOC 209 ミリ秒で 0 オブジェクト / 0 バイト

しかし、奇妙なことに、IP 番号のみを含む volteck.net/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 に答える