检测webView是否已加载50%

时间:2015-11-15 03:09:06

标签: android webview

如何检测我的网页视图是否已加载50%的网页?我基本上想在这一点之后完成页面加载。这是我的代码片段,但它会加载整页。

public class MainActivity extends Activity {
    private WebView webView;
    private ProgressBar progress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView) findViewById(R.id.webView1);
        webView.setWebChromeClient(new MyWebViewClient());

        CookieManager.getInstance().setAcceptCookie(true);// Enable Cookies
        webView.getSettings().setJavaScriptEnabled(true);// Enable Java Script
        webView.setWebViewClient(new HelloWebViewClient());
        webView.loadUrl("http://www.afreesms.com/freesms/"); // Set Home page
        webView.getSettings().setLoadsImagesAutomatically(true);

    }

    private class MyWebViewClient extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int progress) {
            if (progress == 50) {
                webView.stopLoading();
                // do screenshot
            }
        }
    }

    class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView webview, String url) {

            webview.loadUrl(url);
            return true;
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您的if语句正在检查确切progress的{​​{1}}。 50方法可能永远不会被调用50%。更改onProgressChanged()条款以检查if是否大于或等于progress

50