欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開發(fā)中WebView的簡單使用小結(jié)

 更新時間:2016年09月09日 12:02:06   作者:Cooke_  
WebView(網(wǎng)絡(luò)視圖)能加載顯示網(wǎng)頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎加載顯示網(wǎng)頁。下面這篇文章給大家總結(jié)了Android中WebView的簡單使用,有需要的可以參考借鑒。

前言

WebView(網(wǎng)絡(luò)視圖)在Andorid中就是用來顯示網(wǎng)頁的,下面我們來一起看看它是如何使用的。

一、基本使用

1.聲明權(quán)限,WebView不可避免地要用到網(wǎng)絡(luò),我們要加上網(wǎng)絡(luò)訪問權(quán)限。

<uses-permission android:name="android.permission.INTERNET"/>

2.放入Layout

<WebView android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/web">

3.在Activity中引用

private WebView webView;
webView = (WebView) findViewById(R.id.web);
webView.loadUrl("http://piaoshu.org");
//webView.loadUrl("file:///android_asset/xx.html");也可以加載本地的html

這時你會發(fā)現(xiàn),應(yīng)用會自動跳出系統(tǒng)或第三方瀏覽器,也就是說你無法在自己的應(yīng)用中顯示自己的網(wǎng)頁。怎么辦呢?接下來介紹WebView兩個重要的監(jiān)聽事件。

二、WebViewClient與WebChromeClient

webView.setWebViewClient()主要用于加載網(wǎng)頁過程的監(jiān)聽。

webView.setWebViewClient(new WebViewClient(){
 @Override
 //只要重寫此方法,就能在本應(yīng)用中加載網(wǎng)頁
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
  view.loadUrl(url);
  return true;//返回值時true的時候控制網(wǎng)頁在WebView中去打開,如果為false調(diào)用系統(tǒng)瀏覽器或第三方瀏覽器
 }
 @Override 
 public void onReceivedError(WebView view, int errorCode, 
  String description, String failingUrl) { 
//收到錯誤信息的時候,系統(tǒng)執(zhí)行此操作.
//比如當(dāng)出現(xiàn)404錯誤碼時,我們可以自己寫個html放在asset文件夾中,把webView隱藏掉而顯示本地的網(wǎng)頁。
  } 

  @Override 
  public void onPageStarted(WebView view, String url, Bitmap favicon) { 
   super.onPagStarted(view, url, favicon); 
   //若想在網(wǎng)頁開始加載時執(zhí)行一些操作,重寫該方法 
  } 

  @Override 
  public void onPageFinished(WebView view, String url) { 
   super.onPageFinished(view, url); 
   //若想在網(wǎng)頁結(jié)束時執(zhí)行一些操作,重寫該方法 
  } 
}
);

webView.setWebChromeClient()主要用于加載網(wǎng)頁過程對UI的操作。

webView.setWebChromeClient(new WebChromeClient(){
 @Override
 public void onProgressChanged(WebView view, int newProgress) {
  progressBar.setProgress(newProgress);
//newProgress的值為1到100的整數(shù),我們可以利用這個參數(shù)使用ProgressBar或ProgressDialog顯示加載進度
  } 
 }
 @Override
 public void onReceivedTitle(WebView view, String title) { 
  textView.setText(title);//參數(shù)title為網(wǎng)頁的標(biāo)題,可以用一個textView來顯示。
 }
}
);

好了,我們來看看網(wǎng)頁加載的情況。


看起來網(wǎng)頁加載得很好,其實我已經(jīng)設(shè)置了一些相關(guān)屬性。我們來看看WebView 有哪些屬性

三、WebSettings

WebSettings settings=webView.getSettings();
//支持JavaScript腳本
settings.setJavaScriptEnabled(true);
//設(shè)置WebView支持廣泛的視窗 
settings.setUseWideViewPort(true);
//支持手勢縮放 
settings.setBuiltInZoomControls(true);
//設(shè)置WebView 支持加載更多格式頁面 
settings.setLoadWithOverviewMode(true);
//WebView加載頁面優(yōu)先使用緩存加載 
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

還有一些屬性我就不講出來了,有興趣的自己搜一下。

四、下載文件

webview中有時含有下載文件的鏈接,點擊鏈接后文件會被下載到本地中。如何實現(xiàn)呢?系統(tǒng)為我們提供了一個下載接口DownloadListener,代碼簡單而方便。

我們只要寫一個類實現(xiàn)此接口并重寫方法,通過Intent調(diào)用系統(tǒng)的瀏覽器

class MyListenter implements DownloadListener{
 @Override
 public void onDownloadStart(String url, String userAgent,        String contentDisposition, String mimetype, long contentLength) {
  Uri uri = Uri.parse(url); //url即下載鏈接
  Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
  startActivity(intent);
 }
}

別忘了設(shè)置監(jiān)聽器

webView.setDownloadListener(new MyListenter());

我們借助了第三方瀏覽器進行下載,這是最簡單的做法

點擊Android下載,效果如下


或者我們可以寫一個線程進行下載,在onDownloadStart()方法中啟動線程就可以了,具體代碼就不貼上來了。

總結(jié)一下用法。

使用前記得申明權(quán)限,控件的引用就不用說了。

重點在于WebViewClient與WebChromeClient兩個類。

webView.setWebViewClient()主要用于加載網(wǎng)頁過程的相關(guān)操作。

webView.setWebChromeClient()則用于加載網(wǎng)頁過程對UI的操作。

系統(tǒng)還我們提供了一個下載接口DownloadListener。

以上就是這篇文章的全部內(nèi)容,希望對大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論