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