所以,显然我们所做的使用websockets的webapp在三星Galaxy S3股票Android浏览器上不起作用。问题是,Android浏览器不应该支持Web套接字,但它看起来像这个,虽然websockets不起作用,连接需要永远,永远不会成功。 我们的webapp有Android浏览器的后备,它使用flash websockets实现,以防用户安装了flash,但由于它检测到S3支持websockets,因此它不使用后备。
有没有人遇到过同样的问题?有谁知道S3浏览器实现了什么版本的websockets? (甚至WebSocket.org echo测试失败)
答案 0 :(得分:1)
我和你一样对SGS 3也有同样的问题,而且我们也有闪回后退。问题是,当您呼叫undefined
时,其他机器人会为我们window.WebSocket
返回,但SGS3不会。所以我们用window.WebSocket = undefined;
解决了这个问题。所以我们的闪回后备开始起作用了。
答案 1 :(得分:1)
似乎Android的默认浏览器实现了WebSocket
API,但它什么也没做。但是(至少在我的S2 +上),CLOSING
中没有WebSocket
属性,因此您可以使用以下函数来检测WebSockets是否实际受支持:
websocketSupported = function() {
if(typeof WebSocket === 'undefined') {
return false;
}
return 'CLOSING' in WebSocket.prototype;
} ();
答案 2 :(得分:0)
但是我很晚才回答这个问题。但我还想分享一下,ANDROID浏览器仍然不支持WebSockets。请参阅this
我还使用SignalR使用数据推送制作了一个基本的PhoneGap应用程序,并尝试在不同的ANDROID版本上运行,发现它在SAMSUNG ACE DUOS,MICROMAX A116和一个非常老的SAMSUNG模型上工作正常(抱歉,我记不起来了)型号)但它在SAMSUNG GALAXY S3上失败了。