使用webview让你的android加载html5页面。

最近在弄咱家那个android客户端,其中一个功能是能够加载HTML5页面,看了看资料,然后就弄好了,虽然比较搓~但其他方面以后再修补吧,先把功能完善先。

  android中浏览器的内核用的是webkit,webkit是一个开源的浏览器网页排版引擎,苹果的safari、google的chrome都是采用的这个引擎,可见其性能如何了。

  webkit由三个模块组成:JavaScriptCore、WebCore和WebKit.

  在android中,提供了WebView控件专门用来浏览网页、其使用和其他控件一样。

  WebView的属性设置是通过WebSettings来进行的,可以通过:

  WebSettings webSettings = mWebView.getSettings(); 

  来得到WebSettings对象,然后对WebView的一些属性进行设置,例如启动支持javascript脚本、支持页面缩放等等。

  一般情况下,如果只是显示一个网页页面的话,一个WebView就能够完成任务了。但是,很多时候我们需要进行一些其他的处理,而且只是使用WebView来访问网页的话,这是通过调用系统浏览器来完成的,并不是我们自己的程序来完成的,如果需要在程序中自定义网页浏览程序,则需要使用WebViewClient来完成这个功能。

  WebViewClient是专门辅助WebView处理各种通知、请求等事件的类,我们可以通过继承WebViewClient并覆写相应的方法来达到实现符合我们自己的需求。通过WebView的一个函数就可以简单的给WebViewClient对象赋值。

  在设置好了WebViewClient后,我们就可以访问网页的大部分内容了,但是现在基本上所有的网页都使用了javascript,尤其是使用HTML5开发的网页游戏,更是如此,所有我们还必须使用一个类来处理,这时我们就需要用到:WebChromeClient类了。WebChromeClient类是用于辅助WebView处理javascript的对话框、网站图标、网站title、加载进度等内容的。通过覆写相应的方法我们可以自定义javascript的对话框样式,使程序的界面个性化。

  弄到这一步,我们的程序再浏览网页的功能上基本已经完成了,但是其性能方面就……不过既然是第一版,所以功能和界面为先、其他的以后再慢慢研究改进~

 

  小记:这里我们用到了WebView来加载网页、使用WebSettings来设置WebView的一些属性;使用WebViewClient来辅助WebView处理各种通知、请求等事件;使用WebChromeClient来处理网页上面javascript的一些对话框、网页图标、title等内容。

  PS.既然我们可以自己处理javascript中得对话框等,也就是意味着我们可以在WebView和javascript中互相调用~下次再弄~

posted @ 2012-05-18 15:34  你看起来很好吃  阅读(6730)  评论(3编辑  收藏  举报