android 怎么判断网页完全加载

用webview加载网页,里面有js和ajax的交互,我要获取它们的数据,要怎么等他们加载完成

插入js来判断onload等,但是ajax没法直接知道,需要轮训判断

都纠结了几天了还没解决呢,

WebView.setWebChromeClient(new WebChromeClient() {

        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            //newProgress是0到100之间,
        }
    });
    用这个试下?

你拿不到js的数据是因为,你如果Webview不写网页判断是否加载完成的话,你的loadjs其实就是走在H5之前的,但是其实之前的话网页是没有加载外成的,所以你的js那个时候的方法其实是失效的。
楼上说的方法其实是可以的

        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebChromeClient(new WebChromeClient());
        mWebView.setWebViewClient(new GuestFragmentH5.JieWewViewClients());
        mWebView.loadUrl(url+"?userid="+ SharedPreferencesUtil.getUserId(getActivity())+"&token="+SharedPreferencesUtil.getToken(getActivity()));
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                // TODO Auto-generated method stub
                if (newProgress == 100) {
                    // 网页加载完成
//                    progDialog.dismiss();
                    nonelayout.setVisibility(View.GONE);
                    mWebView.setVisibility(View.VISIBLE);
//                    mHandler.removeCallbacksAndMessages(mRunnable);
                } else {
                    // 加载中
                    nonelayout.setVisibility(View.VISIBLE);
                }

            }
        });
        mWebView.addJavascriptInterface(new GuestFragmentH5.ButtonClicks(), "Android");
    }

还有一个方法是这个



    class JieWewViewClient extends WebViewClient {
        /**
         * 如果紧跟着
         * webView.loadUrl(file:///android_asset/index.html);
         * 调用Js中的方法是不起作用的,必须页面加载完成才可以
         */
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
          //webDetail.loadUrl("javascript:javaCallJs('" + jsonDetail + "','" + jsonPrice + "','" + jsonEatate + "','" + jsonfollow + "','" + jsonImages + "','" + jsonFangping + "')");
//           webDetail.loadUrl("javascript:javaCallJs('" + SharedPreferencesUtil.getUserId(mActivity) + "','" + propertyId + "','" + SharedPreferencesUtil.getToken(mActivity) + "')");
            progDialog.dismiss();
            nonelayout.setVisibility(View.GONE);
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);
        }


    }


这是我自己代码,H5和android原生交互的