android对webkit做了哪些封装,lAndroidwebkit简介及开发遇到的一些问题.doc

lAndroidwebkit简介及开发遇到的一些问题

Android webkit简介

张立鹏

M厂开发五部目录

1、webkit架构2

2、Application3

2.1 WebViewClient里面几个重要方法3

2.2 WebChromeClient里面几个重要的方法3

2.3 使用webview的基本流程4

2.4 使用webview的扩展流程4

3、Webkit(framework)7

3.1 webkit(framework)流程的介绍7

3.2 webkit(framework)的一些扩展功能的修改:12

4、Webkit(external)15

4.1 从文件管理器上传文件到邮箱附件里16

4.2 修改webview上的复制效果17

4.3 扩展WML的支持18

4.4 调试19

5、浏览器开发过程中的一些调试手段19

1、webkit架构

目前Android平台自带的浏览器都是以webkit作为解析处理核心的,能够较好的使用webkit提供的功能,能够帮忙我们优化浏览器的一些功能和体验。

从架构上来看,android中的webkit的架构先可以划分为三个主要的部分。如图1-1,application对应的主要是使用webview等实现相应功能的应用,这块目前主要是浏览器或者其他三方应用。Webkit(framework)主要是作为对底层Webkit封装,并为应用提供一些显示方面扩展的功能。Webkit(external)则是整个webkit的核心部分,负责对页面的解析和显示排版等处理。

图1-1 android中webkit架构流程

2、Application

针对普通的应用开发者来说,并不需要知道webkit的实现流程,以及怎么去修改framework中的webkit。一般只需要知道怎么去使用webkit就可以达到自己想要的功能了。Android平台为开发者提供了webview等相应的组件来使用webkit的相应功能。下面就介绍下webview的使用和需要注意的一些地方。

Webview是继承了viewgroup的android提供的一些基本view之一,通过使用webview可以加载本地或者网络服务器上的html等一些页面。而通常我们会和webview配合使用的WebViewClient和WebChromeClient。

2.1 WebViewClient里面几个重要方法

onPageStarted:页面开始加载时会调用,用户可以在这个回调里面显示进度条以及一些初始操作。

onPageFinished:页面加载完毕时调用,可以在这个回调里面刷新界面。

shouldOverrideUrlLoading:需要用户是否针对这个url需要做特殊处理,在这个回调里面,可以对wtai协议或者其他一些特殊的url进行特殊的处理。另外,如果想要让所有点击的link都在当前窗口打开,则一般需要在这个回调里面这样做。

在这个回调里面如果返回true的话,webkit就认为用户以及处理过了,就不会再进行处理了。如果返回false,webkit会根据已有的逻辑进行处理。如打开新的窗口加载这个url等操作。

2.2 WebChromeClient里面几个重要的方法

onProgressChanged:在加载进度有变动的时候会调用这个函数,所以可以在这个函数里面更新加载进度条。

onCreateWindow:在这个回调里面创建窗口

onGeolocationPermissionsShowPrompt:在这个回调里面会提示是否允许使用位置信息

openFileChooser:在这个回调里面要求用户调用打开文件选择来选择文件

2.3 使用webview的基本流程

在使用webview的应用里面,首先创建一个webview,然后根据自己应用的需要添加WebViewClient或者WebChromeClient监听对象来实现一些界面上或者流程上的修改。如:

创建好这些后,通过webview的loadurl就可以加载网络上的数据或者本地数据了。如;

?? 互联网用:webView.loadUrl("");

?????本地文件用:webView.loadUrl("file:///android_asset/XX.html");

使用的地方需要注意的有:

如果是要加载网络服务器上的内容,则必须在应用的AndroidManifest.xml中使用许可"android.permission.INTERNET"如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值