2012-11-12 65 views
8

所以,显然我们所做的webapp,使用websockets,不适用于三星Galaxy S3股票Android浏览器。事情是,Android Browser不应该支持网络套接字,但它看起来像这样,尽管Web套接字不起作用,但连接永远不会成功。 我们的web应用程序对Android Browser有一个回退,它使用闪存websockets实现,以防用户安装了闪存,但由于它检测到S3支持websocket,因此它不使用回退。三星Galaxy S3 Android浏览器上的网络套接字?

有没有人遇到同样的问题?有谁知道S3浏览器实现什么版本的websockets? (即使WebSocket.org的回声测试失败)

+0

如果一个套装或评论,有什么遗漏,您应该接受一个答案。 – kelunik

回答

0

adroid G3上的本机浏览器支持websocket。 尝试jWebSocketserver(javaWebSocket), 作品在IPAD2/3,IPHONE2/3,SAMSUNG TAB2, 三星G3也100%的作品。在html5test.com

http://jwebsocket.org/下载

0

尝试测试不过我很晚回答这个问题。但是我仍然想分享一下,ANDROID浏览器都不支持WebSockets。请参阅this

我还制作了一个基本的PhoneGap应用程序,使用使用SignalR推送数据并尝试在不同的ANDROID版本上运行,发现它在SAMSUNG ACE DUOS,MICROMAX A116和一个非常旧的SAMSUNG模型上运行良好(对不起,我可以不记得型号),但在三星GALAXY S3上失败。

+0

问题是,尽管4.4版之前在Android Browser中没有官方Websocket支持,但三星显然在其一些Android设备中修补了浏览器以支持Websockets。不幸的是,这个实施似乎很糟糕。 – bjunix

1

我和你一样有SGS 3的问题,我们也有闪回。问题是,当您拨打window.WebSocket时,其他机器人会为我们返回undefined,但SGS3不会。所以我们用window.WebSocket = undefined;解决了这个问题。所以我们的闪存回退开始起作用。

1

似乎Android的默认浏览器实现了WebSocket API,但它什么都不做。但是(至少在我S2 +),有一个在WebSocket没有CLOSING属性,所以你可以使用下面的函数来检测,如果WebSockets的实际支持:

websocketSupported = function() { 
    if(typeof WebSocket === 'undefined') { 
     return false; 
    } 

    return 'CLOSING' in WebSocket.prototype; 
}(); 
相关问题