0
私はアンドロイドでWebページの内容を取得しようとしているのWebViewでHTMLをロードされます..私はよ..だから アヤックスのAndroid
を私はすでにJSoupを使用してみましたが、それはAJAX使用してサポートしていません。見えないWebビューの中でURLを読み込み、onPageFinished
の方法でHTMLを取得しようとしています。
私はHTMLを取得できますが、ajaxが読み込まれたHTMLは表示されません。ここでは、コードです:
final WebView webView = (WebView) findViewById(R.id.testWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
Log.d(TAG, "finished loading : ");
webView.loadUrl("javascript:window.HtmlViewer.showHTML" +
"('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
});
webView.loadUrl(url);
class MyJavaScriptInterface {
private Context ctx;
MyJavaScriptInterface(Context ctx) {
this.ctx = ctx;
}
@JavascriptInterface
public void showHTML(String html) {
Log.d(TAG, "HTML: " + html);
new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
.setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
}
}
だから私の質問は以下のとおりです。
- なぜ、ページのHTMLを搭載したAjaxのhtmlのではないでしょうか?
-lライブラリなどを使用してページhtmlをajaxで読み込む別の方法がありますか?
私はWebViewに精通していませんが、webView.loadUrlをwebView.loadDataに置き換えましたが、showHTMLメソッドは呼び出されません。 onPageFinishedは常に呼び出されます –