Android網絡編程之WebKit應用

  Android中,提供了WebKit引擎用於對網頁瀏覽和操作進行編程。GoogleWebKit進行了封裝,提供了豐富的Java接口,其中最重要的便是android.webkit.WebView控件。

 

1. WebViewer控件

  Android提供了WebView控件專門用來瀏覽網頁。其使用方法和其他控件一樣,需要在佈局文件中進行佈局,然後在程序中就可以使用並進行設置了。通過loadUrl方法,可以訪問網頁。代碼如下:

 
 

  1. wb=(WebView)findViewById(R.id.wb);  
  2. wb.loadUrl(url); 

 

  對於瀏覽器的設置,可以通過WebSettings來設置WebView的一些屬性、狀態等。代碼如下:

 
 

  1. WebSettings webSettings = mWebView.getSettings();    
  2.         webSettings.setJavaScriptEnabled(true);  
  3.         //設置可以訪問文件  
  4.         webSettings.setAllowFileAccess(true);  
  5.         //設置支持縮放  
  6.         webSettings.setBuiltInZoomControls(true);  

 

 

2. WebViewClientWebChromClient

  WebViewClientWebChromClientshi 可以看作是輔助WebView管理網頁中各種通知、請求等事件以及JavaScript時間的兩個類。

2.1 WebViewClient

  通過WebViewsetWebViewClient方法指定一個WebViewClient對象。通過覆蓋該類的方法來輔助WebView瀏覽網頁。代碼如下:

 
 

  1. mWebView.setWebViewClient(new WebViewClient()  
  2.         {     
  3.             public boolean shouldOverrideUrlLoading(WebView view, String url)   
  4.             {     
  5.                 view.loadUrl(url);     
  6.                 return true;     
  7.             }    
  8.             @Override 
  9.             public void onPageFinished(WebView view, String url)   
  10.             {  
  11.                 super.onPageFinished(view, url);  
  12.             }  
  13.             @Override 
  14.             public void onPageStarted(WebView view, String url, Bitmap favicon)   
  15.             {  
  16.                 super.onPageStarted(view, url, favicon);  
  17.             }  
  18.         });  

 

 

2.2 WebChromClient

  對於網頁中使用的JavaScript腳本語言,就可以使用該類處理Js事件,如對話框加載進度等。例如:

 

  1. mWebView.setWebChromeClient(new WebChromeClient(){  
  2.             @Override 
  3.             //處理javascript中的alert  
  4.             public boolean onJsAlert(WebView view, String url, String message,  
  5.                     final JsResult result)   
  6.             {  
  7.                 //構建一個Builder來顯示網頁中的對話框  
  8.                 Builder builder = new Builder(Activity01.this);  
  9.                 builder.setTitle("提示對話框");  
  10.                 builder.setMessage(message);  
  11.                 builder.setPositiveButton(android.R.string.ok,  
  12.                         new AlertDialog.OnClickListener() {  
  13.                             public void onClick(DialogInterface dialog, int which) {  
  14.                                 //點擊確定按鈕之後,繼續執行網頁中的操作  
  15.                                 result.confirm();  
  16.                             }  
  17.                         });  
  18.                 builder.setCancelable(false);  
  19.                 builder.create();  
  20.                 builder.show();  
  21.                 return true;  
  22.             };  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章