码迷,mamicode.com
首页 > 移动开发 > 详细

关于android的webview

时间:2014-07-01 09:57:00      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:android   webview   

之前对于webview的认识很肤浅,这次正好研究一下:

  1. 在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:<uses-permission android:name="android.permission.INTERNET" />

  2. 重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。

  3. 返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前activity,于是要对返回键做处理.

     

    @Override  

        public boolean onKeyDown(int keyCode, KeyEvent event) {  

           if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {  

              webView.goBack();  

             return true;  

            } else  

                return super.onKeyDown(keyCode, event);  

        }  

  4. 网页前进按钮。

     

    if(webView.canGoForward()){  

                    webView.goForward();  

     }else{  

             Toast("已经是最后一页了,不能再前进了");  

     }  

  5. 点击刷新按钮的时候,执行webview.reload();

  6. 如果想在页面加载的时候添加提示信息,可以复写webclient的

    onPageStarted(WebView view, String url, Bitmap favicon){

    }

    onPageFinished(WebView view, String url){}

    例子:

     

    @Override 
                public void onPageStarted(WebView view, String url, Bitmap favicon) { 
                    if(progDlg == null || !progDlg.isShowing()){ 
                        progDlg = new ProgressDialog(ctx); 
                       progDlg.setMessage("正在加载,请稍候。。。"); 
                    } 
                   progDlg.show(); 
                } 

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

7.如果想知道加载进度,需要调用另一个类WebChromeClient。

例子:

webView.setWebChromeClient(new WebChromeClient(){ 
 
            @Override 
           public void onProgressChanged(WebView view, int newProgress) { 
                Message msg = new Message(); 
                                msg.what = 200; 
                                msg.obj = newProgress; 
                                handler.sendMessage(msg); 
            } 
}

然后在handler里更新进度条。

private Handler handler = new Handler(){ 
        public void handleMessage(android.os.Message msg) { 
            switch (msg.what) { 
            case 200: 
                int progress = (Integer) msg.obj; 
                progressBar.setProgress(progress); 
               break; 
 
            default: 
               break; 
            } 
        }; 
    };

 

关于android的webview,布布扣,bubuko.com

关于android的webview

标签:android   webview   

原文地址:http://alentain.blog.51cto.com/3572099/1432622

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!