机器人的WebView阿贾克斯 [英] Android webview ajax

查看:179
本文介绍了机器人的WebView阿贾克斯的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有WEP的应用程序,一些网页需要做的Ajax请求获取和更新,如果不刷新页面的页面。

I have wep application which some pages have to do ajax requests to get and update that pages without refresh the page.

我时,我采用Android的WebView问题加载WEP的应用。这要求阿贾克斯不会更新页面,这意味着Ajax请求不工作的所有页面。

My problem when I use android WebView to load that wep application. all pages that request ajax doesn't update the page which means the ajax requests don't work.

下面是MainActivity.java的code

here is the code of 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的数据。

and the android.html have ajax request. the android application works fine and load the android.html but without getting the ajax data

推荐答案

最后,我发现后3天隆答案。
这个问题是在页,我要求有该code:

Finally I've found the answer after 3 Long days.
the problem was in the page that I request which have this code:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

在与Android的WebView冲突,不与jQuery选择工作......不知道为什么响应!

in the response which conflict with android webview and doesn't work with jquery selectors ... Don't know why!!!

但是当我删除了上述code从响应的页面和AJAX工作得很好。

but when I removed the above code from response the page and its ajax works fine.

PS:我所有的网页都XHTML而不是HTML

这篇关于机器人的WebView阿贾克斯的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆