天天看点

【Android开发】网路编程及Internet应用-使用WebView显示网页

android提供了内置的浏览器,该浏览器使用了开源的webkit引擎。webkit不仅能够搜索网址、查看电子邮件,而且能够播放视频节目。在android中,要使用内置的浏览器,需要通过webview组件来实现。通过webview组件可以轻松实现显示网页功能。

如何在android中使用webview组件:

webview组件使用方法同其它组件一样,既可以使用xml布局文件配置,也可以在java文件中通过new关键字创建。推荐使用xml布局文件配置,配置方法:

web组件的常用方法:

loadurl(string url) 用于加载指定url对应的网页

loaddata(string data,string mimetype,string encoding) 用于将指定的字符串数据加载到浏览器中

loaddatawithbaseurl(string baseurl,string data,string mimetype,string encoding,string historyurl) 用于基于url加载指定的数据

capturepicture() 用于创建当前屏幕的快照

goback()执行后退操作,相当于浏览器上后退按钮的功能

goforward()执行前进操作,相当于浏览器上前进按钮的功能

stoploading()用于停止加载当前页面

reload()用于刷新当前页面

下面利用几个实例说明webview的应用

(1)例子1:使用webview组件浏览指定网页

res/layout/main.xml:

mainactivity:

别忘记在androidmanifest.xml中加入访问网络的权限:

运行结果如图

【Android开发】网路编程及Internet应用-使用WebView显示网页

(2)例子2:使用webview加载html代码

在进行android开发时,对于一些游戏的帮助信息,使用html代码进行显示比较实用,不仅可以让界面更加美观,而且可以让开发更加简单、快捷。

需要使用loaddatawithbaseurl()方法加载html代码,基本语法格式如下:

loaddatawithbaseurl(string baseurl,string data,string mimetype,string encoding,string historyurl) 

其中各项参数说明如下:

baseurl:用于指定当前页面使用的基本url。如果为null,则使用默认的about:blank,即空白页

data:用于指定要显示的字符串数据

mimetype:用于指定要显示的mime类型。如果为null,则默认使用text/html

encoding:用于指定数据的编码方式

history:用于指定当前的历史url,也就是进入该页前显示页的url。如果为null,则使用默认的about:blank。

下面用一个实例来说明如何使用webview组件加载html代码:

mainactivity:

【Android开发】网路编程及Internet应用-使用WebView显示网页

(3)例子3:让webview支持javascript

在默认的情况下,webview是不支持javascript的,但是有些网页有需要实现javascript功能。这个时候要为webview加入兼容javascript的功能。利用以下两个步骤:

a.使用webview组件的websettings对象提供的setjavascriptenabled()方法让javascript可用。

webview.getsettings().setjavascriptenabled(true);//设置webview组件兼容javascript

b.通过上面的设置,大部分javascript可用,但是对于通过window.alert()方法弹出的对话框不可用。要想显示弹出的对话框,需要使用webview组件的setwebchromeclient()方法来处理javascript的对话框,具体代码如下:

webview.setwebchromeclient(new webchromeclient());

下面通过一个具体的实例来说明如何让webview组件支持javascript

运行结果为图

【Android开发】网路编程及Internet应用-使用WebView显示网页

(4)整合项目:利用webview打造功能实用的浏览器

实现一个包含前进、后退功能并支持javascript的网页浏览器

布局xml文件中包含前进和后退按钮,一个url地址输入框,一个"go"按钮,还有下方的webview组件

界面效果如图

【Android开发】网路编程及Internet应用-使用WebView显示网页

要在androidmanifest.xml中设置强制横屏(android:screenorientation="landscape"):

运行效果如图

【Android开发】网路编程及Internet应用-使用WebView显示网页

怎么样?你掌握webview的使用技术了吗?赶快动手来做吧!

转载请注明出处:http://blog.csdn.net/acmman/article/details/46489353