WebView的使用

来源:互联网 发布:淘宝网广场舞长裤 编辑:程序博客网 时间:2024/06/05 15:06

使用WebView目的:

1.兼容已有的项目;2.可以动态更新;

注:用WebView展示html会造成耗电量,加载页面也会造成发热。

WebView的使用方法:


  •  webview = (WebView) findViewById(R.id.webview);  
  •         WebSettings webSettings = webview.getSettings();  
  •         //设置WebView属性,能够执行Javascript脚本    
  •         webSettings.setJavaScriptEnabled(true);    
  •         //设置可以访问文件  
  •         webSettings.setAllowFileAccess(true);  
  •          //设置支持缩放  
  •         webSettings.setBuiltInZoomControls(true);  
  •         //加载需要显示的网页    
  •         webview.loadUrl("http://www.baidu.com");    
  •         //设置Web视图    
  •         webview.setWebViewClient(new webViewClient ());   

  • 在AndroidManifest.xml中添加网络访问权限



  • // 简单地加载一个页面
    mWebview .loadUrl(url);
    // 加载assets目录下的页面(assets\index.html)
    mWebview .loadData( "file:///android_asset/index.html" );

    但你会发现,如果点击页面的某条链接进行跳转的话,会启动系统的默认浏览器进行加载,调出了我们本身的应用。要解决这个问题我们需要借助于WebViewClient。


    [自定义链接的跳转显示]
    mWebview .setWebChromeClient( new  WebViewClient() {
                
           
             public   boolean   shouldOverrideUrlLoading(WebView view, String url){
                 // 使用当前的WebView加载页面
                view.loadUrl(url);
                 return   true ;
           }
                
    });

    [页面回退]
    实现了跳转后,你忽然想返回到前一个浏览过的页面是,发现返回键是直接退出应用了。要实现类似系统浏览器那样的,返回键先是返回到上一个页面,直到最初始的页面才退出的话,可以这么做:
    // 重写onKeyDown
    public   boolean   onKeyDown ( int   keyCode, KeyEvent event) {
          if   ((keyCode == KeyEvent. KEYCODE_BACK ) &&   mWebview .canGoBack()) {
               mWebview .goBack();
              return   true ;
         }
             
          return   super .onKeyDown(keyCode, event);
    }


    [进度条]
    要是再加上加载进度条那就完美了,我们可以借助WebChromeClient来实现:
    mWebview .setWebChromeClient( new  WebChromeClient()   {
                  
           public   void   onProgressChanged (WebView view,   int   newProgress){
                 loadingProgress .setProgress(newProgress);
          }
    });

    当WebView出现错误时(无网络):在webView.setWebViewClient方法下重写onReceivedError方法,可在布局文件下添加一个TextView,textView.setText(“404 error”);然后隐藏webView.setVisihilty(View.GONE);

    WebView的重新刷新:webView.reload();

  • 原创粉丝点击