0

我一直在尝试在 webview 中放置一个后退按钮进度条,并将 url 加载到我的应用程序中,而不是使用 android 默认的 web 浏览器。

如果我设法继续在应用程序内浏览并保持后退按钮,如果我设法让进度条显示在底部的代码,shouldoverideurl 的代码永远不会出现并且默认浏览​​器启动,我尝试了所有谷歌教程和解决方案,但没有一个有效。我目前正在使用谷歌..有人可以帮忙吗?

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

}

4

3 回答 3

1
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");

    }
}
于 2011-09-03T08:08:51.953 回答
0

你只是错过了这个声明。

mWebView.setWebViewClient(..)
于 2011-02-16T01:19:43.673 回答
0

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

于 2010-12-30T11:15:15.587 回答