ウェブビューで表示したサイトの<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
}
>"('function go() { js.getTextArea(forms[0].getElementsByTagName(\'textarea\')[0].value);}');" +
この1行が間違っています。
textareaにIDを付けて、getElementByIdメソッドで取得するようにしてみてください。
>Galapagos
ご指摘のとおり、idをつけた後にgetElementByIdで変数を取得できました。
回答ありがとうございました。