Android WebViewとJavaScriptの変数の受け渡しについて 


ウェブビューで表示したサイトの<textarea>~~</textarea>から内容を取り出して
アンドロイド側の変数に格納したいのですが上手くいきません。

とりあえず↓こんな感じで試してみましたがダメでした。

Eclipseで開発してるので構文エラーは無いはずです
どなたか解決策が分かれば教えてください。


WebSettings settings = webView.getSettings();
webView.getSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebViewClient(),"js");
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(URL);
setContentView(webView);


public class WebViewClient extends WebViewClient {

String aaaa;

public String getTextArea(String textarea){
aaaa = textarea;
return aaaa;
}


public void onPageFinished(WebView view, String url){
webView.loadUrl("javascript:" +
"var scrptE = document.createElement(\"script\");"+

"scrptE.setAttribute(\"type\", \"text/javascript\"); "+

"var txt = document.createTextNode" +
"('function go() { js.getTextArea(forms[0].getElementsByTagName(\'textarea\')[0].value);}');" +
"js.getTextArea(textarea); }');"+

"scrptE.appendChild(txt);"+
"document.getElementsByTagName(\"head\")[0].appendChild(scrptE);");
}


webView.loadUrl("javascript:go();");

//aaaa = null


}

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/11/17 09:48:35
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Galapagos No.1

回答回数963ベストアンサー獲得回数89

ポイント100pt

>"('function go() { js.getTextArea(forms[0].getElementsByTagName(\'textarea\')[0].value);}');" +


この1行が間違っています。

textareaにIDを付けて、getElementByIdメソッドで取得するようにしてみてください。

id:koji_koji

>Galapagos

ご指摘のとおり、idをつけた後にgetElementByIdで変数を取得できました。

回答ありがとうございました。

2010/11/17 09:47:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません