Android的WebView与ProgressDialog结合

原创
2011/08/05 09:37
阅读数 2.9K

WebView组件支持直接加载网页,可以将其视为一个浏览器,要实现该功能,具体步骤如下:

webview.xml

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <WebView android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>

WebViewActivity.java

public class WebViewActivity extends Activity{
    private WebView webView;
   
    private AlertDialog alertDialog;
    private ProgressDialog progressBar;
    jQuery datatables使用
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);
        //加载WebView
        initWebView();
    }
   
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()){
            webView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
   
    class MyWebViewClient extends WebViewClient{

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

        @Override
        public void onPageFinished(WebView view, String url) {
            if(progressBar.isShowing()){
                progressBar.dismiss();
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
            Toast.makeText(WebViewActivity.this, "网页加载出错!", Toast.LENGTH_LONG);
           
            alertDialog.setTitle("ERROR");
            alertDialog.setMessage(description);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener(){
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                }
            });
            alertDialog.show();
        }
       
       
       
    }
   
    protected void initWebView(){
        //设计进度条
        progressBar = ProgressDialog.show(WebViewActivity.this, null, "正在进入网页,请稍后…");
        //获得WebView组件
        webView = (WebView) this.findViewById(R.id.webview);
       
        webView.getSettings().setJavaScriptEnabled(true);
       
        webView.loadUrl("http://www.baidu.com");
       
        alertDialog = new AlertDialog.Builder(this).create();
       
        //设置视图客户端
        webView.setWebViewClient(new MyWebViewClient());
    }
}

 最后,需要在**Manifest.xml中添加访问互联网的权限,否则不能显示:

<uses-permission android:name="android.permission.INTERNET"/>

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部