简体   繁体   English

向Webview添加进度条

[英]Adding a progress bar to webview

I have been trying to put a back button progress bar in a webview and keep the url loading within my app instead of using the android default web browser. 我一直在尝试在Web视图中放置后退按钮进度栏,并在我的应用程序中保持网址加载,而不是使用android默认的网络浏览器。

If I manage to keep to browsing within the app and keep the back button the progress bar never shows up if I manage to get the progress bar to show up the code at the bottom for shouldoverideurl come up never read and the default browser launches, I tried all the google tutorials and solution but none of them work. 如果我设法继续在应用程序内浏览并保持后退按钮,那么如果我设法让进度条在底部显示代码,则应该永远不会显示进度条,因为应该不出现,并且默认浏览​​器会启动,尝试了所有的谷歌教程和解决方案,但没有一个工作。 I am currently using google.. Can anyone help?? 我目前正在使用Google。有人可以帮忙吗?

public class livebrad extends Activity {

WebView mWebView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    // Adds Progrss bar Support
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.brows);

    // Makes Progress bar Visible
    getWindow().setFeatureInt(    Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); 

    // Get Web view
    mWebView = (WebView) findViewById( R.id.webView ); //This is the id you gave 
                                                         //to the WebView in the main.xml
    mWebView.getSettings().setJavaScriptEnabled(true);   
    mWebView.getSettings().setSupportZoom(true);         //Zoom Control on web (You don't need this 
                                                         //if ROM supports Multi-Touch        
    mWebView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM

    // Load URL
    mWebView.loadUrl("http://www.bbc.co.uk");


    // Sets the Chrome Client, and defines the onProgressChanged
    // This makes the Progress bar be updated.
    final Activity MyActivity = this;
    mWebView.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)   
    {
        //Make the bar disappear after URL is loaded, and changes string to Loading...
        MyActivity.setTitle("Loading...");
        MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded

        // Return the app name after finish loading
        if(progress == 100)
            MyActivity.setTitle(R.string.app_name);

    }class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
    });



}//End of Method onCreate

} }

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class SandbarinFacebook extends Activity {

WebView mWebView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fb);

        final ProgressDialog pd = ProgressDialog.show(this, "", "Loading...",
                true);

        mWebView = (WebView) findViewById(R.id.webkitWebView1);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setSupportZoom(true);  
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                if(pd.isShowing() && pd!=null)
                {
                pd.dismiss();
                }
            }
        });
        mWebView.loadUrl("http://m.facebook.com/sandbarathens");

    }
}

如果要在用户每次单击链接时显示进度条,请在shouldOverrideUrlLoading()方法中添加代码以显示进度条。

您只是错过了这句话。

mWebView.setWebViewClient(..)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM