王運生 聶芬
摘要:目前,Andriod智能手機平臺已經成為人們獲取信息的重要方式之一,但在使用過程中,經常遇到在手機平臺上登陸某個網址需要輸入較復雜的URL地址,造成使用不便。WebView是Andriod平臺基于WebKit引擎的瀏覽器組件,用來顯示網頁或者顯示應用的在線內容。基于WebView可以快速開發瀏覽器的上層應用,響應網頁的加載和腳本的交互。本文將介紹使用Webview組件將固定網址封裝成一個Andriod程序的方法。
關鍵詞:Andriod; Webview組件; 網頁; 封裝
中圖分類號:TP311 文獻標識碼:A文章編號:2095-2163(2013)06-0104-03
0引言
Android手機平臺是美國Google公司開發的基于Linux平臺的開源智能手機操作系統,內含操作系統、中間件和應用程序,由于源代碼開放,該系統可以移植到不同的硬件平臺上,目前已被國內外手機制造商廣泛采用[1]。
WebView是Android平臺上一個能夠加載顯示網頁的組件,是一個瀏覽器控件,通過這個控件可以直接訪問網頁,或者把輸入的HTML字符串顯示出來,功能較為強大,并主要表現為如下五個優點[2]:
(1)功能強大,支持CSS,Java?script等HTML語言,使得頁面更加漂亮;
(2)能夠對瀏覽器控件進行非常詳細的設置,比如字體大小,背景色,滾動條樣式等;
(3)能夠捕捉到所有瀏覽器操作,比如點擊URL,打開或關閉URL;
(4)能夠很好地融入布局;
(5)甚至,webView還能和JS進行交互。
1 Webview組件主要內容
使用Webview組件在Android平臺上加載顯示網頁,首先要在manifest.main文件中創建一個Webview,然后在activity中定義Webview,主要內容如下[3]:
(1)添加權限:AndroidManifest.xml中必須使用許可“android.permission.INTERNET”,否則會出現Web page not available錯誤;
(2)要在Activity中生成一個WebView組件:WebView webView = new WebView(this);
(3)如果WebView中需要用戶手動輸入用戶名、密碼或其他,則Webview必須設置支持獲取手勢焦點:Webview.requestFocusFromTouch();
(4)如果訪問的頁面中有Javascript,則Webview必須設置支持Javascript,否則顯示空白頁面。Java代碼:Webview.getSettings().setJavaScriptEnabled(true);
(5)WebView 加載界面主要調用“LoadUrl”方法,可直接加載網頁、圖片并顯示;
(6)如果頁面中存在鏈接,而點擊鏈接卻要求繼續在當前browser中響應,而不是在新開Android系統的browser中響應該鏈接,則必須覆蓋Webview的WebViewClient對象。Java代碼如下:
(7) 如果不做任何處理,在顯示用戶的Brower UI時,點擊系統“Back”鍵,整個Browser會作為一個整體回退(“Back”)到其他Activity中,而不是在Browser的歷史頁面中實現回退(“Back”)。如果需要在歷史頁面中實現Back,則要在當前Activity中處理并消費掉該Back事件。相應的Java代碼如下:
2實現Webview的兩種方法
2.1在Activity中實例化WebView組件
首先,該方法要在Activity中實例化WebView組件[5]:
WebView webView = new WebView(this);
其次,要調用WebView的loadUrl()方法,設置WevView將顯示的網頁,本文以要訪問“山西水利職業技術學院全國計算機等級考試成績查詢”為例,URL地址為:http://60.222.229.72:94/cjcx/index.asp,則調用WebView的loadUrl()方法語句為:
webView.loadUrl("http://60.222.229.72:94/cjcx/index.asp");
最后,調用Activity的setContentView( )方法來顯示網頁視圖,在計算機上訪問該網頁,如圖1所示。
經調試,該方法在Andriod模擬平臺上可以正常打開網頁,效果如圖2所示。
經調試,同樣可以得到圖1的結果,最后,在eclipse[7]環境下,將源代碼打包生成Andriod平臺的APK安裝文件,而在Andriod手機平臺安裝完成后即可付諸使用,具體如圖3所示。
3結束語
上述兩種方法,均可實現將復雜的網頁URL地址封裝成一個Andriod程序,從而進行快速瀏覽[8],特別需要注意的是:
(1)在用WebView鏈接成功后,為了使WebView支持回退功能,需要覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退按鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面。
(2)需要在AndroidManifest.xml文件中添加權限:
參考文獻:
[1]韓超.Android經典應用程序開發[M].北京:電子工業出版社,2012:115-121.
[2]林城.Android 2.3應用開發實戰[M]. 北京:機械工業出版社,2013:132-142.
[3]白文江.基于Android平臺的移動應用開發研究[J].太原:太原大學學報,2011(3):117-120.
[4]張小東,李惠.基于Android的PKM平臺的設計與實現[J].貴州大學學報(自然科學版),2011(6):70-74.
[5]孫偉,丁永尚, 何福男.Web Service技術在移動平臺中的應用[J]. 蘇州市職業大學學報, 2012(9):38-41.
[6]劉彬.Web Service技術在移動平臺中的應用[D].廣州:中山大學, 2011:32-40.
[7]姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用, 2008,17(11):110-112.
[8]熊文闊.基于Android平臺手機圖形編輯軟件的設計與實現[D].北京:北京郵電大學, 2011:35-39.