Anaroid WebView詳解大全

來源:互聯網
上載者:User

資源描述:

1.android提供了webView控制項專門用來瀏覽網頁。
然後在程式中裝載webView控制項,設定屬性,比如:顏色、字型、要訪問的網址等。通過loadUrl方法設定當前webView需要訪問的網址。在建立WebView時,系統有一個預設的設定,我們可以通過WebView.getSettings來得到這個設定。
 

2.下面是設定一些常用屬性、狀態的方法
WebSettings常用方法:
setAllowFileAccess 啟用或禁止WebView訪問檔案資料
setBlockNetworkImage 是否顯示網狀圖像
setBuiltInZoomControls 設定是否支援縮放
setCacheMode 設定緩衝的模式
setDefaultFontSize 設定預設的字型大小
setDefaultTextEncodingName 設定在解碼時使用的預設編碼
setFixedFontFamily 設定固定使用的字型
setJavaSciptEnabled 設定是否支援Javascript
setLayoutAlgorithm 設定布局方式
setLightTouchEnabled 設定用滑鼠啟用被選項
setSupportZoom 設定是否支援變焦

WebViewClient常用方法:
doUpdate VisitedHistory 更新記錄
onFormResubmission 應用程式重新請求網頁資料
onLoadResource 載入指定地址提供的資源
onPageFinished 網頁載入完畢
onPageStarted 網頁開始載入
onReceivedError 報告錯誤資訊
onScaleChanged WebView發生改變
shouldOverrideUrlLoading 控制新的串連在當前WebView中開啟

WebChromeClient常用方法:
onCloseWindow 關閉WebView
onCreateWindow 建立WebView
onJsAlert 處理Javascript中的Alert對話方塊
onJsConfirm處理Javascript中的Confirm對話方塊
onJsPrompt處理Javascript中的Prompt對話方塊
onProgressChanged 載入進度條改變
onReceivedlcon 網頁表徵圖更改
onReceivedTitle 網頁Title更改
onRequestFocus WebView顯示焦點
 

3. android webView相關知識
@下面的代碼通過loadUrl方法設定當前webView需要訪問的網址:
mWebView=(WebView) findViewById(R.id.WebView01);
mWebView.loadUrl(“http://www.sogou.com”);
@在android中專門通過WebSettings來設定WebView的一些屬性、狀態等。在建立WebView時,系統有一個預設的設定,我們可以通過WebView.getSettings來得到這個設定:
WebSettings webSettings=mWebView.getSettings();//取得對象
WebSettings和WebView都在同一個生命週期中存在,當WebView被銷毀後,如果再使用WebSettings,則會拋出異常。
@使用WebViewClient來完成在應用程式中自訂網頁瀏覽程式:
WebViewClient是輔助WebView處理各種通知、請求等事件的類。通過WebView的setWebViewClient方法指定WebViewClient對象。
WebView可以通過覆蓋WebViewClient方法來輔助WebView瀏覽網頁:
public Boolean shouldOverrideUrlLoading
(WebView view,String url){view .loadUrl(url);return true;}
 

 

4. android webView執行個體
執行個體中使用EditText輸入網址,用Button來確認串連,用webView顯示網頁內容。
這裡使用了WebViewClient來輔助WebView處理一些事件,因此我們顯示的網頁都是在一個WebView控制項中。可以通過goBack和goForward方法設定前進和後退,先檢查是否可以前進和後退:
if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
{
mWebView.goBack()//返回前一個頁面
return true;
}
例子中,通過自製瀏覽器訪問一個包含javascript對話方塊的html頁面。通過點擊介面上的“警告,提醒對話方塊”按鈕、“帶選擇的對話方塊”按鈕、“要求使用者輸入的對話方塊”按鈕,介面分別會彈出對話方塊“這是一個警告對話方塊”、“更多資訊請到我的部落格去”正常按鈕/取消按鈕、“輸入對話方塊”正常按鈕/取消按鈕、一個跳轉頁面。Js html頁面在程式碼封裝的根目錄下(dialog.html)。
我們通過setWebChromeClient方法為WebView設定一個WebChromeClient對象,輔助WebView處理js對話方塊,監聽按鈕事件,然後通過confirm和cancel方法將我們的操作傳遞給js處理。
package com.yarin.android.Examples_08_06;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.graphics.Bitmap;
……
public class Activity01 extends Activity
{
private final String DEBUG_TAG = "Activity01";
private Button mButton;
private EditText mEditText;
private WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mEditText = (EditText) findViewById(R.id.EditText01);
mWebView = (WebView) findViewById(R.id.WebView01);
//設定支援JavaScript指令碼
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//設定可以訪問檔案
webSettings.setAllowFileAccess(true);
//設定支援縮放
webSettings.setBuiltInZoomControls(true);
//設定WebViewClient
mWebView.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
}
});

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.