[Android API 学习]WebView基本使用

 

WebView是android.webkit包下的一个组件,能用来显示网页。

WebView默认是不带地址栏和加载进度条的,单单是一个显示页面内容的面板。

使用WebView非常简单,主要是通过load方法进行加载。

[使用WebView打开一个网页]
1.在布局xml文件中定义WebView组件
< WebView   android:id = "@+id/webview"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
/>

2.在AndroidManifest.xml中添加网络访问权限
< uses-permission android:name = "android.permission.INTERNET"  / >

3.通过load函数加载网页
mWebview  = (WebView) this .findViewById(R.id. webview );
// 简单地加载一个页面
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 ;
       }
            
});

在WebViewClient中还有很多的方法,例如:
/**
 * 网页开始加载
 */
public   void   onPageStarted(WebView view, String url, Bitmap favicon);

/**
 * 网页加载完毕(仅指主页,不包括图片)
 */
public   void   onPageFinished(WebView view, String url);

/**
 * 加载页面资源
 */
public   void   onLoadResource(WebView view, String url)

/**
 * 错误提示
 */
public   void   onReceivedError(WebView view,   int   errorCode, String description, String failingUrl)

我们都可以通过重写来实现自己的个性化操作。

[页面回退]
实现了跳转后,你忽然想返回到前一个浏览过的页面是,发现返回键是直接退出应用了。要实现类似系统浏览器那样的,返回键先是返回到上一个页面,直到最初始的页面才退出的话,可以这么做:
// 重写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的使用说明请参考API文档。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值