【发布时间】:2013-04-15 18:24:31
【问题描述】:
我有一个 wep 应用程序,其中一些页面必须执行 ajax 请求才能获取和更新该页面而不刷新页面。
我使用 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 数据
【问题讨论】:
-
你的 ajax 代码可以在桌面浏览器上运行吗?
-
也许您没有在清单中设置必要的权限?试试这个:stackoverflow.com/questions/13956726/…
-
@galuano1 :是的,它在所有浏览器中都能正常工作
-
@JeremyG :我设置了权限。页面加载所有内容,除了来自 ajax 请求的数据
-
你测试的是哪个安卓版本? GB?