王运生 聂芬
摘要:目前,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.