- 浏览: 141149 次
- 性别:
- 来自: 枣阳
文章分类
- 全部博客 (61)
- dwr (1)
- Flex (8)
- android (15)
- html转换成pdf (1)
- 八款开源 Android 游戏引擎 (巨好的资源) (1)
- url (0)
- Junit测试中找不到junit.framework.testcase (0)
- Junit (1)
- Java (4)
- spring (2)
- itext (1)
- JDBC (2)
- 正则表达式 (1)
- package (1)
- SVN (1)
- json (2)
- 常见问题 (1)
- SQL (1)
- Html5 (3)
- 看看 (1)
- 理论知识 (0)
- JavaScript (0)
- Jquery (0)
- MySQL MyISAM InnoDB 区别 (0)
- MySQL (0)
- struts2 标签 获取s:param的值 子页面获取 s:include s:param的值 (0)
- Oracle (1)
- Web (1)
- 性能 (0)
- Tomcat (0)
- Struts2 (5)
- tools (0)
- Exception (0)
- web开发问题 (0)
- log (0)
- Struts 2验证框架出错:403 for URL:http:////www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd (1)
- IOS (0)
- eclipse (0)
- webservice (0)
- AOP (0)
- View (0)
- 视图 (0)
- hsqldb (0)
- jar包 (0)
- Annotation (0)
- error at ::0 can't find referenced pointcut和error at ::0 formal unbound in point (0)
- Demo (0)
- 精彩文章 (0)
- rest (0)
- Test (0)
- 工具 (0)
- linux (0)
- 常用知识 (0)
- JavaScript 遍历JSON (0)
- 继承了之后还要不要注入的问题 (0)
- liunx (0)
- jQuery Mobile (1)
- ext (0)
- 二维码微信扫描 (0)
- 分享 (0)
- iOS7 (1)
- http (0)
- object-c (0)
- nginx (0)
- myEclipse10 (1)
- VM (0)
- window (0)
- server (0)
- lvs (0)
- 在线支付 (0)
- 安全技术 (0)
- 知识 (0)
- servlet (0)
- 支付 (0)
- mybatis (0)
- 服务器 (2)
- 使用SeaJS,require加载Jquery的时候总是为null (0)
- seaJs (0)
- 微信 (1)
最新评论
-
medlying:
html中的js能够被解析执行吗
Itext 实现 html转换成pdf -
794581572:
还是出现了乱码.. 编码用utf-8还是出了乱码
Itext 实现 html转换成pdf -
mbq820:
楼主为什么我的 提示不支持该字体:Unsupported fo ...
Itext 实现 html转换成pdf -
SwordShadow:
博主写的太好了,可以转载吗?
Itext 实现 html转换成pdf -
sinotao1:
写得非常好。
Struts2 中的数据传输
在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。
什么是webkit
WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。
传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。
这里我们初步体验一下在android是使用webview浏览网页,在SDK的Dev Guide中有一个WebView的简单例子 。
在开发过程中应该注意几点:
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
下一步让我们来了解一下android中webview是如何支持javascripte自定义对象的,在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。
我们看addJavascriptInterface(Object obj,String interfaceName)这个方法,该方法将一个java对象绑定到一个javascript对象中,javascript对象名就是 interfaceName(demo),作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了。来看看在html中是怎样调用的。
这样在javascript中就可以调用java对象的clickOnAndroid()方法了,同样我们可以在此对象中定义很多方法(比 如发短信,调用联系人列表等手机系统功能。),这里wave()方法是java中调用javascript的例子。
这里还有几个知识点:
1)为了让WebView从apk文件中加载assets,Android SDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的 assets目录中找内容。如上面的"file:///android_asset/demo.html"
2)addJavascriptInterface方法中要绑定的Java对象及方法要运行另外的线程中,不能运行在构造他的线程中,这也是使用 Handler的目的。
什么是webkit
WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。
传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。
这里我们初步体验一下在android是使用webview浏览网页,在SDK的Dev Guide中有一个WebView的简单例子 。
在开发过程中应该注意几点:
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
mWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } });
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
下一步让我们来了解一下android中webview是如何支持javascripte自定义对象的,在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。
public class WebViewDemo extends Activity { private WebView mWebView; private Handler mHandler = new Handler(); public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.webviewdemo); mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:wave()"); } }); } }, "demo"); mWebView.loadUrl("file:///android_asset/demo.html"); } }
我们看addJavascriptInterface(Object obj,String interfaceName)这个方法,该方法将一个java对象绑定到一个javascript对象中,javascript对象名就是 interfaceName(demo),作用域是Global。这样初始化webview后,在webview加载的页面中就可以直接通过 javascript:window.demo访问到绑定的java对象了。来看看在html中是怎样调用的。
<html> <script language="javascript"> function wave() { document.getElementById("droid").src="android_waving.png"; } </script> <body> <a onClick="window.demo.clickOnAndroid()"> <img id="droid" src="android_normal.png" /> <br /> Click me! </a> </body> </html>
这样在javascript中就可以调用java对象的clickOnAndroid()方法了,同样我们可以在此对象中定义很多方法(比 如发短信,调用联系人列表等手机系统功能。),这里wave()方法是java中调用javascript的例子。
这里还有几个知识点:
1)为了让WebView从apk文件中加载assets,Android SDK提供了一个schema,前缀为"file:///android_asset/"。WebView遇到这样的schema,就去当前包中的 assets目录中找内容。如上面的"file:///android_asset/demo.html"
2)addJavascriptInterface方法中要绑定的Java对象及方法要运行另外的线程中,不能运行在构造他的线程中,这也是使用 Handler的目的。
发表评论
-
Android View三种属性——VISIBLE,INVISIBLE,GONE
2014-08-12 15:12 0INVISIBLE:仍旧会占用空间,只是内容不显示。 GO ... -
android Gson的使用
2014-07-29 15:47 0相对于较为传统的Json解析来说,google共享的开源Gs ... -
利用HTML5开发Android笔记
2014-01-08 19:32 0http://johncookie.iteye.com/bl ... -
android 中 webview 怎么用 localStorage?
2014-01-08 19:30 0我在 android里面 使用html5的 localSto ... -
Android 处理流程
2013-11-20 00:50 0今天看了一下别人写的android代码。 大致了解了and ... -
Android开发规范
2013-08-17 08:50 0[size=large]一、Android编码 ... -
android关于AndroidManifest.xml详细分析
2013-07-29 23:57 0http://my.eoe.cn/1087692/arch ... -
Android 精华文章
2013-07-29 23:33 0AndroidManifest.xml http:/ ... -
记事本
2013-04-15 16:28 0对于WebChromeClient,WebViewClien ... -
关于android WebViewClient的方法解释
2013-04-15 14:49 32241、public boolean shouldOverri ... -
PhoneGap 在Android 手机上的全屏(FullScreen)问题
2013-04-15 11:13 1726(注:本方法只适用于PhoneGap 0.93或更高版本) ... -
android 界面布局
2012-06-12 23:26 1521布局: 在 android 中我们常用的布局方式有这 ... -
Activity利用Handler与Thread进行通讯,写了一个简单Demo
2012-06-11 23:32 5880最近写了一个列子,想跟大家一起分享. 用android.os. ... -
Android 文件的保存和读取
2012-05-30 09:55 1351Android 给我们提供了两个方法返回输入、输出流,分别为: ... -
Android中strings.xml文件
2012-05-29 18:13 1521如果动态的修改Android中strings.xml文件中的值 ... -
Android 中LayoutInflater的使用
2012-05-28 17:54 1473在实际开发种LayoutInflater这个类还是非常有用的, ... -
Android 应用程序之间数据共享—ContentProvider
2012-05-25 11:56 1318在Android 应用程序之间数据共享—-ContentRes ... -
Android Bind Service
2012-05-24 10:57 1189启动Service有两种方式:startService 与 b ... -
Android BroadcastReceiver 学习
2012-05-23 14:12 1385BroadcastReceiver 用于异步 ... -
Android DDMS
2012-05-22 10:20 1163DDMS 的全称是Dalvik Debug Monitor S ...
相关推荐
在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中嵌入网页内容并实现与网页的交互。WebView基于WebKit内核,它的表现与Firefox类似,因此在开发时通常会在Firefox上进行预览和测试,以确保...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。有时候,我们可能希望去除WebView中的标题部分,以实现更自定义化的界面设计。本篇文章将详细探讨如何在Android的...
Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...
本文将详细讲解如何在Android Webview中调用摄像头进行二维码扫描,并结合ZXing(Zebra Crossing)解析包进行二维码的解析。 首先,让我们了解Android Webview的基本用法。Webview是Android SDK提供的一种视图组件...
Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递...
在Android平台上,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入网页内容。这个项目"Android Webview视频播放器"是利用Webview来实现HTML5视频播放功能的示例。以下是对这个项目的详细解读: 1. **...
在Android开发中,Webview是一个非常重要的组件,它允许开发者在原生应用中嵌入网页内容,实现网页与原生应用的交互。本篇将详细讲解如何在Android Webview中实现滑动监听以及图片的放大缩小功能。 首先,我们要...
在Android开发中,Webview是一个非常重要的组件,它允许我们加载和展示网页内容。当涉及到在Webview中播放网页视频时,这个问题可能会变得稍微复杂,因为Android原生的Webview并不总是支持所有现代HTML5视频特性。...
在Android平台上,WebView是一个至关重要的组件,它允许开发者在应用程序中嵌入网页浏览功能,而无需启动完整的浏览器应用。在给定的标题“android webview 版本69.0”中,提到的是一个特定版本的WebView,即69.0。...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,无需跳转到外部浏览器。这个“Android webview加载网页.zip”文件可能包含了一个示例项目或者教程,帮助开发者理解...
在Android开发中,Webview是一个非常重要的组件,它允许我们加载和展示网页内容。而实现夜间模式是现代应用中常见的需求,特别是在保护用户视力和节省电池方面。本篇将详细介绍如何利用CSS注入来实现在Android ...
Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地...
在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现类似浏览器的功能。本文将详细讲解如何在Android的WebView中播放视频,包括全屏播放的实现方法。以下是对该主题的...
总结来说,Android WebView与H5的结合使得开发者能灵活地在原生应用中实现丰富的交互功能,比如调用拍照。通过设置JavaScript接口,我们可以将Android原生功能暴露给H5页面,让网页可以直接调用设备的摄像头,从而...
在Android开发中,WebView是一个非常重要的组件,它允许我们在原生应用中展示网页内容,提供了一种混合式应用开发的解决方案。本篇文章将深入探讨如何在Android WebView中实现自由复制和选择文字的功能,这对于增强...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容。这个"动态设置android webview字体大小DEMO"是一个示例项目,专门演示如何在运行时调整WebView中显示的文本的字体大小,以提高...
总结,Android的WebView组件提供了丰富的功能,能够加载远程和本地资源,同时支持缓存机制,提高用户体验。开发者需要根据实际需求调整其配置和行为,以实现最佳的加载效果和性能。在处理图片资源时,特别要注意路径...
在Android开发中,Webview是一个重要的组件,它允许我们在原生应用中内嵌网页内容,提供混合式应用的用户体验。然而,在使用Webview时,有时会遇到一个问题:当HTML页面中包含`<input type="file">`用于上传文件的...