- 浏览: 142153 次
- 性别:
- 来自: 枣阳
-
文章分类
- 全部博客 (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 32321、public boolean shouldOverri ... -
PhoneGap 在Android 手机上的全屏(FullScreen)问题
2013-04-15 11:13 1742(注:本方法只适用于PhoneGap 0.93或更高版本) ... -
android 界面布局
2012-06-12 23:26 1543布局: 在 android 中我们常用的布局方式有这 ... -
Activity利用Handler与Thread进行通讯,写了一个简单Demo
2012-06-11 23:32 5900最近写了一个列子,想跟大家一起分享. 用android.os. ... -
Android 文件的保存和读取
2012-05-30 09:55 1359Android 给我们提供了两个方法返回输入、输出流,分别为: ... -
Android中strings.xml文件
2012-05-29 18:13 1535如果动态的修改Android中strings.xml文件中的值 ... -
Android 中LayoutInflater的使用
2012-05-28 17:54 1490在实际开发种LayoutInflater这个类还是非常有用的, ... -
Android 应用程序之间数据共享—ContentProvider
2012-05-25 11:56 1331在Android 应用程序之间数据共享—-ContentRes ... -
Android Bind Service
2012-05-24 10:57 1204启动Service有两种方式:startService 与 b ... -
Android BroadcastReceiver 学习
2012-05-23 14:12 1398BroadcastReceiver 用于异步 ... -
Android DDMS
2012-05-22 10:20 1178DDMS 的全称是Dalvik Debug Monitor S ...
相关推荐
Android 网络编程面试题知识点总结 Android 网络编程面试题是 Android 开发者需要掌握的重要知识点。下面总结了 Android 网络编程面试题的知识点。 一、内存优化 * 内存泄漏的定义:程序在申请内存后无法释放本...
最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows篇) android入门与提高必看指南 Android入门逆引手册 Android...
【WebView在Android开发中的应用】 ...虽然代码未经仔细整理,但是通过阅读和分析,开发者可以从中学到如何在实际项目中运用WebView。如果在研究过程中遇到问题,可以通过描述中提供的留言方式寻求帮助。
本文介绍了Android 实现截屏方式整理,分享给大家。希望对大家有帮助 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选取一部分 自动截取某个空间或者布局 截取长图 在后台...
根据提供的文件信息,我们可以整理出以下几个关键的知识点: ### Android ListView与Adapter的优化技巧 在Android应用开发过程中,`ListView`是一种非常常见的组件,用于显示一系列数据项。然而,在处理大量数据时...
例如,如果WebApp运行在较旧版本的Android系统中的WebView组件上,可能会遇到兼容性和性能问题。为了解决这些问题,项目团队需要进行大量的定制化开发,如自定义Chrome浏览器来提供更好的用户体验。 在WebApp的设计...