webview用法

android.webkit库聚合了webkit内核的浏览器功能,webview是它的一个控件,可以使网页轻松的内嵌到app里,还可以直接跟js相互调用。

webview有两个方法:setWebChromeClient和setWebClient

WebviewClient:帮助WebView处理各种通知、请求事件。

回调函数讲解:

1、public boolean shouldOverrideUrlLoading(WebView view, String url){ 
      view.loadUrl(url);
      return true;
  }
  在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边.

  默认返回:return super.shouldOverrideUrlLoading(view, url); 这个返回的方法会调用父类方法,也就是跳转至手机浏览器,

  平时写webview一般都在方法里面写 webview.loadUrl(url)
  返回: return true; webview处理url是根据程序来执行的。
  返回: return false; webview处理url是在webview内部执行。

 

2、public void onReceivedSslError(WebView view, SslErrorHandlerhandler, android.net.http.SslError error) {
handler.proceed();
}
重写此方法可以让webview处理https请求。

 

3、public boolean shouldOverrideKeyEvent(WebView view, KeyEventevent) {
           return super.shouldOverrideKeyEvent(view, event);
       }
    }
重写此方法才能够处理在浏览器中的按键事件。

 

4、 public void onLoadResource(WebView view, String url) {
           // TODO Auto-generated method stub
           if (DEBUG) {
               Log.d(TAG, " onLoadResource ");
           }
           super.onLoadResource(view, url);
       }
在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。

 

 

5、 public void onPageStarted(WebView view, String url, Bitmapfavicon) {
           // TODO Auto-generated method stub
           if (DEBUG) {
               Log.d(TAG, " onPageStarted ");
           }
          if (url.endsWith(".apk")) {
                   download(url);//下载处理
            }
           super.onPageStarted(view, url, favicon);
       }
在页面加载开始时调用。



 

6、public void onPageFinished(WebView view, String url) {
           // TODO Auto-generated method stub
           if (DEBUG) {
               Log.d(TAG, " onPageFinished ");
           }
           super.onPageFinished(view, url);
       }
在页面加载结束时调用。




你可能感兴趣的:(webview)