Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android WebView-WebViewClient

android WebView-WebViewClient

編輯:關於Android編程


WebView自己加載子頁面

默認情況下,點擊WebView所加載的頁面上的超鏈接按鈕時,是啟動系統自帶的浏覽器去加載新的頁面。如果要讓WebView自己加載,
需要添加如下代碼:
webView.setWebViewClient(new SelfWebViewClient());

SelfWebViewClient繼承自WebViewClient,如下:
public class SelfWebViewClient extends WebViewClient {
		@Override
		public void onPageFinished(WebView view, String url) {
			super.onPageFinished(view, url);
			//加載結束
		}


		@Override
		public void onReceivedError(WebView view, int errorCode,
				String description, String failingUrl) {
			super.onReceivedError(view, errorCode, description, failingUrl);
			//在此處顯示加載失敗頁面
			loadFailure.setVisibility(View.VISIBLE);
		}


		@Override
		public void onLoadResource(WebView view, String url) {
			super.onLoadResource(view, url);
			//加載資源
		}


		@Override
		public void onReceivedHttpAuthRequest(WebView view,
				HttpAuthHandler handler, String host, String realm) {
			super.onReceivedHttpAuthRequest(view, handler, host, realm);
			//webview保存密碼
		}


		@Override
		public void onPageStarted(WebView view, String url, Bitmap favicon) {
			super.onPageStarted(view, url, favicon);
			//開始加載頁面
		}


		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			//點擊鏈接跳轉,對網頁中超鏈接按鈕的響應。 
			view.loadUrl(url);
			return true
		}
	}

WebViewClient的一般生命周期如下:
如果加載成功
onPageStarted-->> onLoadResource-->>onPageFinished-->> onLoadResource
如果加載失敗
onPageStarted-->>
onLoadResource-->>onReceivedError-->>onPageFinished-->>onPageFinished

WebViewClient的常見用途有三個:1、讓WebView自己加載子頁面;2、如果WebView加載失敗顯示失敗頁面;3、記住頁面
登錄密碼。這三個功能上面代碼已經簡單介紹了。

WebView從子頁面返回

上面介紹了如何如何直接用WebView加載子頁面,但是如何從子頁面返回上一頁面呢?
這個需要有一個出發時間,我就用返回鍵來觸發,代碼如下:
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { 
          webView.goBack(); //goBack()表示返回WebView的上一頁面 
          return true; 
      } else{
    	  finish();
      }
      return false; 
  } 



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved