工作需要,學(xué)習(xí)WebView控件,目前還沒有在實(shí)際工作中使用,以此作為初識(shí)WebView控件的總結(jié)。
從《第一行代碼》中可知:Android提供了一個(gè)WebView控件,借助它我們就可以在自己的應(yīng)用程序里嵌入一個(gè)瀏覽器,從而非常輕松地展示各種各樣的網(wǎng)頁。WebView在后臺(tái)幫我們處理好了發(fā)送HTTP請求、接受服務(wù)響應(yīng)、解析返回?cái)?shù)據(jù),以及最終的頁面展示這幾步工作。
具體操作流程為:首先,在布局文件中放置WebView控件,并讓其填充父容器;接著,在代碼中找到該控件并進(jìn)行相關(guān)配置,并設(shè)置要加載的網(wǎng)頁的Url;最后,添加網(wǎng)絡(luò)權(quán)限。
《瘋狂Android講義》講解的關(guān)于WebView的知識(shí)點(diǎn)有三:
- 使用WebView瀏覽網(wǎng)頁
- 使用WebView加載HTML代碼
- 使用WebView中的JavaScript調(diào)用Android方法
使用WebView瀏覽網(wǎng)頁
WebView的用法與普通ImageView組件的用法基本相似,它提供了大量方法來執(zhí)行瀏覽器操作,例如如下常用方法:
Void goBack():后退
Void goForward():前進(jìn)
Void loadUrl(String url):加載指定URL對應(yīng)的網(wǎng)頁
Boolean zoomIn():放大網(wǎng)頁
Boolean zoomOut():縮小網(wǎng)頁
使用WebView加載HTML代碼
如果應(yīng)用程序想重新對HTML字符串進(jìn)行解析,當(dāng)成HTML頁面來顯示,就需要使用到WebView控件。
WebView提供了一個(gè)loadData(String data,String mimeType,String encoding)方法,該方法可用于加載并顯示HTML代碼,但當(dāng)加載包含中文的HTML內(nèi)容時(shí),WebView將會(huì)顯示亂碼。
WebView還提供了一個(gè)loadDataWithBaseURL(String baseUrl,String data,String mimeType,String encoding,String historyUrl)方法,該方法是loadData(String data,String mimeType,String encoding)的增強(qiáng)版,它不會(huì)產(chǎn)生亂碼。
Data:指定需要加載的HTML代碼
mimeType:指定HTML代碼的MIME類型,對應(yīng)HTML代碼可指定為text/html
Encoding:指定HTML代碼編碼所用的字符集,比如GBK
使用WebView中的JavaScript調(diào)用Android方法
在WebView的JavaScript中調(diào)用Android方法之只要如下三個(gè)步驟:
調(diào)用WebView關(guān)聯(lián)的WebSettings的setJavaScriptEnabled(true)啟用JavaScript調(diào)用功能;
調(diào)用WebView的addJavascriptInterface(Object object,String name)方法將object對象暴露給JavaScript腳本;
在JavaScript腳本中通過剛才暴露的name對象調(diào)用Android方法。
這些內(nèi)容只是最基本的用法,因此我又嘗試著閱讀Android官方文檔對WebView的介紹。