小编Ste*_*ven的帖子

使用Javascript检测websocket支持的最佳方法是什么?

我正在尝试使用Javascript来检测Web浏览器是否支持websockets,但仅使用基于功能的检测,我得到误报,所以我添加了一个用户代理测试来抛弃Android设备,我不是高兴的.我有三星Galaxy Tab 2,这是我的检测代码:

var isSupported = (("WebSocket" in window && window.WebSocket != undefined) ||
                   ("MozWebSocket" in window));

/* This line exists because my Galaxy Tab 2 would otherwise appear to have support. */
if (isSupported && navigator.userAgent.indexOf("Android") > 0)
  isSupported = false;

if (isSupported)
  document.write("Your browser supports websockets");
else
  document.write("Your browser does not support websockets");
Run Code Online (Sandbox Code Playgroud)

此代码似乎适用于IE,Firefox,Safari(包括iPhone/iPad)和Chrome.但是,当我使用Samsung Galaxy Tab 2的默认浏览器时,基于功能的检查将返回true,这是不正确的,因为该浏览器实际上不支持websockets.此外,我不知道有多少其他Android设备有同样的问题,所以目前,这是我所知道的最佳解决方案.

除了我正在做的事情之外,还有更好的方法来检测websocket支持吗?我确实知道Android的解决方法存在,例如使用不同的浏览器,这意味着我的用户代理检测代码不是一件好事.我的目标是首先不必依赖用户代理.

有什么建议?

javascript android websocket

13
推荐指数
4
解决办法
1万
查看次数

标签 统计

android ×1

javascript ×1

websocket ×1