webview.loadUrl("http://192.168.1.66:8081/bbs/"); //指定要加载的网页
(3)由于在本实例中需要访问网络资源,所以还需要在AndroidManifest.xml文件中指定允许访问网络资源的权限,具体代码如下:
运行本实例,在屏幕上将显示通过URL地址指定的网页,如图14.10所示。
图14.10 使用WebView浏览网页
技巧: 如果想让WebView组件具有放大和缩小网页的功能,则要进行以下设置:
webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);
14.2.2 使用WebView加载HTML代码
在进行Android开发时,对于一些游戏的帮助信息,使用HTML代码进行显示比较实用,不仅可以让界面更加美观,而且可以让开发更加简单、快捷。WebView组件提供了loadData()和loadDataWithBaseURL()方法来加载HTML代码。使用loadData()方法加载带中文的HTML内容时会产生乱码,但使用loadDataWithBaseURL()方法就不会出现这种情况。loadDataWithBaseURL()方法的基本语法格式如下:
loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)
loadDataWithBaseURL()方法各参数的说明如表14.3所示。
表14.3 loadDataWithBaseURL()方法的参数说明
参 数 描 述
baseUrl 用于指定当前页使用的基本URL。如果为null,则使用默认的about:blank,即空白页
data 用于指定要显示的字符串数据
mimeType 用于指定要显示内容的MIME类型。如果为null,则默认使用text/html
encoding 用于指定数据的编码方式
historyUrl 用于指定当前页的历史URL,也就是进入该页前显示页的URL。如果为null,则使用默认的about:blank
下面通过一个具体的实例来说明如何使用WebView组件加载HTML代码。
例14.8 在Eclipse中创建Android项目,名称为14.8,实现应用WebView组件加载使用HTML代码添加的帮助信息。(实例位置:光盘\TM\sl\14\14.8)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个WebView组件,关键代码如下:
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
(2)在MainActivity的onCreate()方法中,首先获取布局管理器中添加的WebView组件,然后创建一个字符串构建器,将要显示的HTML代码放置在该构建器中,最后应用loadDataWithBaseURL()方法加载构建器中的HTML代码,具体代码如下:
WebView webview=(WebView)findViewById(R.id.webView1); //获取布局管理器中添加的WebView组件
StringBuilder sb=new StringBuilder(); //创建一个字符串构建器,将要显示的HTML内容放置在该构建器中
sb.append("
选择选项,然后从以下选项中进行选择:
");sb.append("
- ");
- 编辑内容:用于增加、移动和删除桌面上的快捷工具。 ");
- 隐藏内容:用于隐藏桌面上的小工具。 ");
- 显示内容:用于显示桌面上的小工具。 ");
sb.append("
sb.append("
sb.append("
sb.append("
webview.loadDataWithBaseURL(null, sb.toString(), "text/html", "utf-8", null); //加载数据
运行本实例,在屏幕上将显示如图14.11所示的由HTML代码指定的帮助信息。
图14.11 使用WebView加载HTML代码
14.2.3 让WebView支持JavaScript
在默认的情况下,WebView组件是不支持JavaScript的,但是在运行某些不得不使用JavaScript代码的网站时,需要让WebView支持JavaScript。实际上,让WebView组件支持JavaScript比较简单,只需以下两个步骤就可以实现。
(1)使用WebView组件的WebSettings对象提供的setJavaScriptEnabled()方法让JavaScript可用。例如,存在一个名称为webview的WebView组件,要设置在该组件中允许使用JavaScript,可以使用下面的代码:
webview.getSettings().setJavaScriptEnabled(true); //设置JavaScript可用
(2)经过以上设置后,网页中的大部分JavaScript代码均可用。但是,对于通过window.alert()方法弹出的对话框并不可用。要想显示弹出的对话框,需要使用WebView组件的setWebChromeClient()方法来处理JavaScript的对话框,具体代码如下:
webview.setWebChromeClient(new WebChromeClient());
这样设置后,在使用WebView显示带弹出JavaScript对话框的网页时,网页中弹出的对话框将不会被屏蔽掉。下面通过一个具体的实例来说明如何让WebView支持JavaScript。
例14.9 在Eclipse中创建Android项目,名称为14.9,实现控制WebView组件是否支持JavaScript。(实例位置:光盘\TM\sl\14\14.9)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个CheckBox和WebView,关键代码如下:
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"