内事不决问百度,外事不决问GOOGLE!元芳,你怎么看?
以下资料来源于
http://developer.android.com
http://developer.android.com/reference/android/webkit/WebView.html
这个是WebView的适用场景及概览。
W
ebView可以通过注入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的平台。
现在整个移动开发还处于比较混沌的状态,到处都充满了机会!
一,背景这段时间项目上需要整合一系列的网站,由于网站是用python tornado的异步框架,需要用支持WebSocket的浏览器的支持,而比较悲剧的是,Android的内置浏览器居然不支持WebSocket!!!自然内置的WebView也不会有了。二,原理内事不决问百度,外事不决问GOOGLE!元芳,你怎么看?以下资料
1.XML 文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:
android
="http://schemas.
android
.com/apk/res/
android
"
xmlns:app="http://schemas.
android
.com/apk/res-auto"
如果您的应用程序需要在
Webview
中使用
WebSocket
,您可以使用一些第三方库来实现
WebSocket
功能。这些库会在
Webview
中创建一个
WebSocket
连接,并将其绑定到一个
WebSocket
对象。您可以使用这个对象来发送和接收数据,就像在Web浏览器中一样。
下面是一些用于在
Webview
中实现
WebSocket
的第三方库:
1.
Android
Async:这是一个基于NIO的异步网络库,它可以帮助您在
Android
中实现
WebSocket
。
2. OkHttp:这是一个用于
Android
和Java的HTTP客户端库,它也
支持
WebSocket
。
3.
WebSocket
4J:这是一个纯Java实现的
WebSocket
客户端库,它可以在
Android
中使用。
使用这些库中的任何一个,您都可以在
Webview
中实现
WebSocket
通信。