移動測試之WebView

一、WebView:
(一)、介紹:
android提供了一個內置瀏覽器,該瀏覽器可以查看網站,查看郵件,播放視頻。要使用該內置瀏覽器,要通過WebView組件實現。webView組件式專門用來瀏覽網頁的。
類結構:
java.lang.Object    ↳ android.view.View      ↳ android.view.ViewGroup        ↳ android.widget.AbsoluteLayout          ↳ android.webkit.WebView

(二)、webview組件常用方法:【掌握】
1.loadUrl()
2.loadData()
3.loadDataWithBaseURL()
4.capturePicture()
5.goBack()
6.goForward()
7.stopLoading()
8.reload()
(三)、WebView組件顯示url頁面的內容:
1、基本代碼:

webView_main = (WebView) findViewById(R.id.webView_main);

webView_main.loadUrl("http://www.qq.com");

(四)、WebView組件加載html代碼:
1、基本代碼:
webView_main = (WebView) findViewById(R.id.webView_main);
// webView_main.loadData(data, "text/html","utf-8");//這個方法中雖然設置了字符集,但是運行效果中發現依然中文會顯示亂碼。爲了解決這個問題,建議使用loadDataWithBaseURL()方法。

webView_main.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);

【備註:】MIME【瞭解】
1.概念:MIME意爲多功能Internet郵件擴展,它設計的最初目的是爲了在發送 電子郵件時附加多媒體數據,讓郵件客戶程序能根據其類型進行處理。然而當它被HTTP協議支持之後,它的意義就更爲顯著了。它使得HTTP傳輸的不僅是普通的文本,而變得豐富多彩。
2.每個MIME類型由兩部分組成,前面是數據的大類別,例如聲音audio、圖象image等,後面定義具體的種類。
3.常見的MIME類型(通用型):
超文本標記語言文本 .html text/html
xml文檔 .xml text/xml
XHTML文檔 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文檔 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG圖像 .png image/png
GIF圖形 .gif image/gif
JPEG圖形 .jpeg,.jpg image/jpeg
au聲音文件 .au audio/basic
MIDI音樂文件 mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二進制數據 application/octet-stream
2、如果加載的html代碼中包含javascript語言,會如何呢?
運行後發現,所有的javascript都不會執行。因爲WebView 在默認情況下不支持javascript。如何讓執行javascript呢?
讓WebView支持javascript的兩個步驟:
使用 WebView 組件的WebSettings對象的setJavaScriptEnabled()方法。這種做法是讓 WebView 能支持絕大多數的javascript語言。但是依然不支持alert等警告對話框語句。
使用 WebView 組件的setWebChromeClient()方法。這種做法是讓 WebView 也支持顯示alert等警告對話框。
基本代碼:

webView_main.getSettings().setJavaScriptEnabled(true);// 支持運行javascript

webView_main.setWebChromeClient(new WebChromeClient());// 支持運行特殊的javascript(例如:alert())

webView_main.setWebViewClient(new WebViewClient());// 當點擊超鏈地址後不會新打開瀏覽器來訪問,而是始終在本app中瀏覽頁面

3、如果html中包含有超級鏈接地址,WebView能順利執行嗎?
 經過運行後發現,WebView中的超鏈地址在點擊後,會跳出該應用程序,而彈出新的瀏覽器去訪問該網頁。
如果解決呢?調用webview對象的setWebViewClient()方法即可解決。
webView_main.setWebViewClient(new WebViewClient());

(五)、用WebView實現“網頁版天氣預告”
【備註:】調用頁面地址:http://m.weather.com.cn/m/pn12/weather.htm?id=101010100T

webView_main = (WebView) findViewById(R.id.webView_main); webView_main.getSettings().setJavaScriptEnabled(true); webView_main.setWebChromeClient(new WebChromeClient()); webView_main.setWebViewClient(new WebViewClient()); webView_main.loadUrl("http://m.weather.com.cn/m/pn12/weather.htm?id=101010100T");

(六)、製作簡單的網頁瀏覽器:
1、核心代碼:
public class MainActivity extends Activity {
private EditText editText_main_url;
private WebView webView_main;
private String url = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText_main_url = (EditText) findViewById(R.id.editText_main_url);
webView_main = (WebView) findViewById(R.id.webView_main);
// 讓webview對象支持解析javascript語句
webView_main.getSettings().setJavaScriptEnabled(true);
// 讓webview對象支持解析alert()等特殊的javascript語句
webView_main.setWebChromeClient(new WebChromeClient());
// 如果不使用該句代碼,在點擊超鏈地址後,會跳出程序,而彈出瀏覽器訪問網頁。
webView_main.setWebViewClient(new WebViewClient());

}

public void clickButton(View view) {
switch (view.getId()) {
// 瀏覽器中後退鍵監聽
case R.id.button_main_goback:
webView_main.goBack();
break;
// 瀏覽器前進鍵監聽
case R.id.button_main_goforward:
webView_main.goForward();
break;
// 當輸入網址後,點擊該按鈕,可以執行訪問
case R.id.button_main_submit:
url = editText_main_url.getText().toString();
if ((url == null) || url.equals("")) {
Toast.makeText(MainActivity.this, "請輸入url地址!", 5000).show();
} else {
if (url.indexOf("http://") != 0) {
url = "http://" + url;
}
webView_main.loadUrl(url);
}
break;
// 瀏覽器停止加載鍵監聽
case R.id.button_main_stop:
webView_main.stopLoading();
break;
// 瀏覽器刷新鍵監聽
default:
break;
}
}
}

編輯:千鋒軟件測試

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