Web View允許你創建自己的窗口用於瀏覽網頁,甚至是開發一個自己的瀏覽器.以下是一個簡單的例子:
1.創建一個名爲HelloWebView工程.
2.打開res/layout/main.xml,插入以下內容:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
3.打開 HelloWebView.java
文件,在這個類的開始定義WebView 對象:
WebView mWebView;
4.在onCreate方法裏面使用以下代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(http://www.google.com);
}
以上代碼初始化了WebView對象,通過getSettings方法得到了一個WebSettings 對象,通過setJavaScriptEnabled方法使WebView支持Java script,最後通過loadUrl方法來導入網頁.
5.由於應用程序需要訪問網頁,因此需要在 Android manifest 文件裏面添加合適的權限:
<uses-permission android:name="android.permission.INTERNET" />
6.同時也可以在manifest 文件裏面去掉title bar,給webview更大的可視空間
<activity android:name=".HelloGoogleMaps" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
7.現在運行應用程序,我們創建了一個簡單的網頁觀察器,但目前還不是一個瀏覽器,因爲當你點擊一個鏈接時,Android 默認的瀏覽器會處理瀏覽web頁面的intent,爲了讓我們的activity能夠處理自己的url請求,我們可以重寫WebViewClient 類.
8.在HelloAndroid Activity中,創建一個內部類:
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
9.在onCreate方法的末尾,設置HelloWebViewClient 的實例,作爲一個WebViewClient :
mWebView.setWebViewClient(new HelloWebViewClient());
這樣我們就創建了一個webview,這個webview可以處理任何通過這個webview選擇的URL,並且加載到這個webview中,shouldOverrideUrlLoading方法傳遞當前的WebView 和URL請求.
如果再次運行應用程序,新的頁面將會被加載進來,這樣會有一個缺點:無法回到之前的頁面上去,解決這個問題的辦法是處理BACK鍵,讓webview能夠返回到之前的頁面而不是退出程序.
10.爲了處理BACK鍵,我們可以重寫onKeyDown方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
當canGoBack方法返回true時,表明之前還有頁面被加載過,可以返回到前一加載頁面,如果爲false,則退出程序.