基于Android的Web实现技术

(整期优先)网络出版时间:2016-12-22
/ 2

基于Android的Web实现技术

黄继红严仍荣

皖西学院电子与信息工程学院六安237012

摘要:实现AndroidAPP与互联网之间的通信是移动智能设备必须具备的功能,通过该功能,移动设备可以有效的与互联网中的服务资源有效的融合,使应用程序的功能更加强大,更能满足用户的需求。本文主要从显示本地资源和远程资源,处理相应的事件以及与JavaScript交互信息等功能介绍Android的Web实现持术。

关键词:WebViewWeb资源事件

1引言

当今世界,互联网中的资源服务丰富强大,无所不包,无所不能,地球上的任何之物,如果不能与互联网相接,几乎将被人类忽略。尤其是智能移动设备及其应用程序。Android移动应用程序也不例外,实现与互联网的充分融接是AndroidAPP必须具备的。

AndroidAPP与Web之间的通信是通过WebView视图实现,程序通过将WebView视图布局到视图文件中可以显示任何本地和远程网页资源。WebView视图和AndroidBrower应用程序都是基于WebKit引擎,所以两者赋予Web应用程序相同的性能和功能[1]。

2显示Web信息

WebView视图是应用程序布局中的一个视图控件,主要用于存放并显示Web网页信息元素,可以该视图控件浏览远程和本地Web网页信息。

2.1显示远程资源

如果要显示一个Web网页,首先,创建WebView视图对象,在该对象中配置要显示的网页网址,如:

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

WebViewwebView=newWebView(this);

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("http://www.baidu.com/");

setContentView(webView);

}

其中,webView.loadUrl("http://www.baidu.com/")方法,是加载要显示的网页网址,webView.getSettings().setJavaScriptEnabled(true)是打开支持JavaScipt的功能。

如果WebView加载的是远程内容,在程序的配置语文件AndroidManifest.xm中l必须声明使用android.permission.INTERNET权限。如,<uses-permissionandroid:name="android.permission.INTERNET"/>。

2.2显示本地资源

WebView视图控件除了能显示远程网页信息,还能显示本地的与网页相关的资源,如,图片,纯文本,HTML文本信息等。以下代码一段HTML文本信息。

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

WebViewwebView=newWebView(this);

webView.getSettings().setJavaScriptEnabled(true);

StringhtmlString="<h1>Header</h1><p>ThisisHTMLinforamtion</p>";

webView.loadData(htmlString,"text/html","utf-8");

setContentView(webView);

}

在方法voidWebView.loadData(Stringdata,StringmimeType,Stringencoding)中,参数据data是加载的文本数据,参数mimeType是加载的数据类型,参数据encoding是加载数据使用的编码格式[2]。

3触发Web事件

应用程序使用WebView显示内容,但在用户点击页面中的链接时还需要监听和响应。实现一个WebViewClient并把它关联到WebView上。默认情况下,WebView在没有指定WebViewClient时,WebView会将一个URL传递给ActivityManager处理。而ActivityManager通常会在浏览器应用程序中打开用户点击的链接,而不是在当前的WebView中[3]。

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

WebViewwebview=newWebView(this);//EnableJavaScriptsupport

webview.getSettings().setJavaScriptEnabled(true);

webview.setWebViewClient(newWebViewClient());

webview.loadUrl("http://www.sina.com.cn/");

setContentView(webview);

}

4与JavaScript相互调用

AdroidAPP与JavaScript相互调用是通过WebView类实现。

4.1WebView调用JavaScript

WebView视图使用方法loadUrl()方法调用JavaScript中的方法。如,webview.loadUrl("javascript:showMassage()");showMassage()方法是JavaScript中的方法,代码如下:

<scriptlanguage="javascript">

functionshowMassage(){

……

}

</script>

4.2JavaScript调用WebView

首先,创建要被JavaScript调用的类,例如:

classJavaScriptInterface{

publicvoidcallMe(){……}

}

再给WebView对象设置支持JavaScript,如,webview.setJavaScriptEnabled(true)

然后将映射本地的类,webview.addJavascriptInterface(newDemoJavaScriptInterface(),"nec");“nec”这个名字是公布出去给JavaScript调用的。那么,JavaScript就可以直接用JavaScriptInterface类中的方法了,如:

<bodyonload="javascript:demo.clickOnAndroid()">……</body>

5小结

AndroidAPP与Web之间的通信,主要包括本地资源的显示,运程资源的显示,以及Web事件的处理和与JavaScript之间的通信等功能

基金项目:

安徽省高校优秀青年人才基金项目(2011SQRL151)

安徽省六安市委托产学研项目(2013LWA005)

作者简介:黄继红(1977-),男,安徽六安人,硕士,讲师,主要研究方向:软件工程

参考文献:

[1]DaveSmith等.Android5.0开发范例代码大全[M].清华大学出版社.2015.9

[2]余志龙.GoogleAndroidSDK开发范例大全[M].人民邮电出版社.2009:70-75.

[3]耿祥义.Android手机程序设计实用教程[M].清华大学出版社.2013.6