三星 Galaxy S3 Android 浏览器上的 Web 套接字?

Posted

技术标签:

【中文标题】三星 Galaxy S3 Android 浏览器上的 Web 套接字?【英文标题】:Web Sockets on Samsung Galaxy S3 Android Browser? 【发布时间】:2012-11-12 18:25:38 【问题描述】:

因此,显然我们所做的使用 websockets 的 web 应用程序不适用于三星 Galaxy S3 库存的 android 浏览器。问题是,Android 浏览器不应该支持 web sockets,但看起来这个有,虽然 websockets 不起作用,连接永远不会成功。 我们的 web 应用有一个 Android 浏览器的后备方案,它使用 flash websockets 实现,以防用户安装了 flash,但由于它检测到 S3 支持 websockets,所以它不使用后备方案。

有人遇到过同样的问题吗?有谁知道 S3 浏览器实现的 websocket 版本是什么? (甚至 WebSocket.org 回显测试失败)

【问题讨论】:

你应该接受一个答案,如果一个适合或评论,缺少什么。 【参考方案1】:

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

【讨论】:

【参考方案2】:

Android 的默认浏览器似乎实现了WebSocket API,但它什么也没做。但是(至少在我的 S2+ 上),WebSocket 中没有 CLOSING 属性,因此您可以使用以下函数来检测是否实际支持 WebSocket:

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

    return 'CLOSING' in WebSocket.prototype;
 ();

【讨论】:

【参考方案3】:

但是我很晚才回答这个问题。但我仍然想分享的是,没有一个 ANDROID 浏览器仍然支持 WebSockets。参考this

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

【讨论】:

问题是,尽管4.4之前的Android浏览器没有官方的Websocket支持,但三星显然已经在部分Android设备中对浏览器进行了补丁以支持Websockets。不幸的是,实现似乎被破坏了。

以上是关于三星 Galaxy S3 Android 浏览器上的 Web 套接字?的主要内容,如果未能解决你的问题,请参考以下文章

三星 Galaxy S3、S4、S5 的 Android 相机/图片方向问题

三星 Galaxy s3 4.1.1 和 4.1.2 上的 Canvas globalCompositeOperation 问题

三星 Galaxy S3 上的 Android 相机预览不正确

三星 Galaxy S3 的媒体查询

相机意图不适用于三星 Galaxy S3

带有 Galaxy S3 的 Android 蓝牙 SPP