一,背景

这段时间项目上需要整合一系列的网站,由于网站是用python tornado的异步框架,需要用支持WebSocket的浏览器的支持,而比较悲剧的是,Android的内置浏览器居然不支持WebSocket!!!自然内置的WebView也不会有了。


二,原理

内事不决问百度,外事不决问GOOGLE!元芳,你怎么看?

以下资料来源于http://developer.android.com

http://developer.android.com/reference/android/webkit/WebView.html


这个是WebView的适用场景及概览。



关键技术点:


WebView可以通过注入JavaScript接口对象来实现JS/JAVA之间的相互调用,这个方面也是现在的PhoneGap所使用的注入点,有关PhoneGap方面的资料,有兴趣的可以参看:

http://phonegap.com/

这是一个很好的项目,试图解决移动平台的通用化问题,很有前景。

WebSocket协议简介:http://en.wikipedia.org/wiki/WebSocket(有兴趣可以看看)。来自开源界的对WebSocket的实现已经有很多个版本,我这里选用的是: https://github.com/anismiles/websocket-android-phonegap 的实现


最终我们的主要代码就是:

wv.addJavascriptInterface(new WebSocketFactory(wv), "WebSocketFactory");

注入WebSocketFactory对象,对应的JS重写WebSocket方法,然后就可以实现WebSocket的支持了。


测试的代码抄自:

http://www.websocket.org/echo.html

最终效果:

Sample Code:

http://code.google.com/p/mobile-sample/downloads/detail?name=webview_websocket.rar

三、一点感受:

对比IOS和Android,IOS的开发成熟度确实要比Android要高,或许大家觉得Android让大家有更多研究的兴趣,但实际上,对于一个产品的开发而言,首先平台,应该是IOS,让IOS首先验证了你的想法,然后再来弄Android的平台。

现在整个移动开发还处于比较混沌的状态,到处都充满了机会!

更多相关文章

  1. android中sqlite操作
  2. 浅谈Android引用计数(2)
  3. Android(安卓)recovery 模式下屏幕显示旋转
  4. android其实很简单--内存相关
  5. 程序员挑战高薪,你必须会的十大面试题《一》
  6. 用volley从网页获取json数据
  7. Android(安卓)TwoLineListItem
  8. android 判断Apk是否签名和 签名是否一致
  9. 跟着官方学习Android(安卓)— Services

随机推荐

  1. Android线程池(四)ThreadPoolExecutor类源
  2. Android:TextView与EditText中插入表情图
  3. Android--MediaPlayDemo简单的音乐播放器
  4. Android神奇编程之通过SOCKET协议实现断
  5. Android常用的颜色列表,color.xml
  6. Android 通过广播获取网络状态
  7. android 获取HOME组件的Activity信息
  8. 手机服务方面的小技巧集合
  9. android中Sensor 工作流程
  10. SQLiteOpenHelper数据库操作