資源描述:http://www.2cto.com/kf/201210/164571.htmljavascript
1.android提供了webView控件專門用來瀏覽網頁。
而後在程序中裝載webView控件,設置屬性,好比:顏色、字體、要訪問的網址等。經過loadUrl方法設置當前webView須要訪問的網址。在建立WebView時,系統有一個默認的設置,咱們能夠經過WebView.getSettings來獲得這個設置。
html
2.下面是設置一些經常使用屬性、狀態的方法java
WebSettings經常使用方法:
setAllowFileAccess 啓用或禁止WebView訪問文件數據
setBlockNetworkImage 是否顯示網絡圖像
setBuiltInZoomControls 設置是否支持縮放
setCacheMode 設置緩衝的模式
setDefaultFontSize 設置默認的字體大小
setDefaultTextEncodingName 設置在解碼時使用的默認編碼
setFixedFontFamily 設置固定使用的字體
setJavaSciptEnabled 設置是否支持Javascript
setLayoutAlgorithm 設置佈局方式
setLightTouchEnabled 設置用鼠標激活被選項
setSupportZoom 設置是否支持變焦android
WebViewClient經常使用方法:
doUpdate VisitedHistory 更新歷史記錄
onFormResubmission 應用程序從新請求網頁數據
onLoadResource 加載指定地址提供的資源
onPageFinished 網頁加載完畢
onPageStarted 網頁開始加載
onReceivedError 報告錯誤信息
onScaleChanged WebView發生改變
shouldOverrideUrlLoading 控制新的鏈接在當前WebView中打開web
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);
}
});app