万书网 > 文学作品 > Android从入门到精通 > 第162页

第162页





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"