ページを更新せずにそのページを取得および更新するために、一部のページが ajax 要求を実行する必要がある web アプリケーションがあります。
Android WebViewを使用してそのwepアプリケーションをロードするときの問題。ajax を要求するすべてのページはページを更新しません。つまり、ajax 要求が機能しません。
ここに MainActivity.java のコードがあります
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview_layout);
webView = (WebView) findViewById(R.id.webView);
webView.clearCache(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(LOG_TAG, message);
new AlertDialog.Builder(view.getContext())
.setMessage(message).setCancelable(true).show();
result.confirm();
return true;
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Toast.makeText(view.getContext(), "onPageStarted", Toast.LENGTH_SHORT).show();
super.onPageStarted(view, url, favicon); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void onPageFinished(WebView view, String url) {
Toast.makeText(view.getContext(), "onPageFinished", Toast.LENGTH_SHORT).show();
super.onPageFinished(view, url); //To change body of generated methods, choose Tools | Templates.
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setBuiltInZoomControls(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setAllowContentAccess(true);
webSettings.setUseWideViewPort(true);
webView.loadUrl("http://192.168.1.236:8080/mobile/android.html");
}
android.html には ajax リクエストがあります。Androidアプリケーションは正常に動作し、android.htmlをロードしますが、ajaxデータを取得しません