如何侦听WebView完成加载URL?我有一个WebView从互联网上加载页面。我想展示一个ProgressBar直到装货完成。如何侦听完成WebView?
3 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
mWebView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { // do your stuff here }});
郎朗坤
TA贡献1921条经验 获得超9个赞
boolean loadingFinished = true;boolean redirect = false;mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { if (!loadingFinished) { redirect = true; } loadingFinished = false; webView.loadUrl(urlNewString); return true; } @Override public void onPageStarted(WebView view, String url) { loadingFinished = false; //SHOW LOADING IF IT ISNT ALREADY VISIBLE } @Override public void onPageFinished(WebView view, String url) { if (!redirect) { loadingFinished = true; //HIDE LOADING IT HAS FINISHED } else { redirect = false; } }});
最新情况:
更新2:
boolean loadingFinished = true;boolean redirect = false; mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading( WebView view, WebResourceRequest request) { if (!loadingFinished) { redirect = true; } loadingFinished = false; webView.loadUrl(request.getUrl().toString()); return true; } @Override public void onPageStarted( WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); loadingFinished = false; //SHOW LOADING IF IT ISNT ALREADY VISIBLE } @Override public void onPageFinished(WebView view, String url) { if (!redirect) { loadingFinished = true; //HIDE LOADING IT HAS FINISHED } else { redirect = false; } } });
梦里花落0921
TA贡献1772条经验 获得超6个赞
private void setupWebViewClient() { webView.setWebViewClient(new WebViewClient() { private int running = 0; // Could be public if you want a timer to check. @Override public boolean shouldOverrideUrlLoading(WebView webView, String urlNewString) { running++; webView.loadUrl(urlNewString); return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { running = Math.max(running, 1); // First request move it to 1. } @Override public void onPageFinished(WebView view, String url) { if(--running == 0) { // just "running--;" if you add a timer. // TODO: finished... if you want to fire a method. } } });}
- 3 回答
- 0 关注
- 1060 浏览
添加回答
举报
0/150
提交
取消