检测设备品牌

时间:2013-05-03 10:03:52

标签: javascript node.js device

我正在开展网络分析。我正在使用JavaScript客户端和NodeJS服务器端。我知道我们可以使用userAgent查找device type,但如何检测设备品牌(客户端或服务器端)?

5 个答案:

答案 0 :(得分:5)

一个为您解析此问题的库是Platform.js,您可以在客户端或服务器端使用它,如上面链接的介绍页中所述。

以下是客户端示例:

    <script type='text/javascript' src='platform.js'></script>
    <script type='text/javascript'>
        alert('you are using ' + platform.description + ' on an ' + (platform.manufacturer || 'unknown vendor') )
    </script>

请注意,您不会在通用浏览器上获得制造商,但应该在移动设备上获得该品牌,例如: Apple,三星等

答案 1 :(得分:1)

你不能直接这样做; userAgent字段根本不包含供应商。但是,您可以构建一个映射到特定供应商的userAgent令牌库。不过,这将涉及大量设备的大量研究和测试。

例如,在userAgent中使用“iOS”,“iPhone”或“iPad”的任何内容都可以安全地映射到“Apple”。 然后三星Galaxy S3在userAgent中有型号,即“GT-I9300”。然后,您可以将其映射到“三星”。 ...然后你需要为你想要识别的每个其他设备重复这个。在线查找用户代理字符串可能是最快捷的方式。

答案 2 :(得分:0)

通过userAgent Strings进行检测可能会导致检测错误。您可以将浏览器字符串更改为您想要的任何内容。在大多数情况下,它不会告诉你它是哪个设备。

答案 3 :(得分:0)

您可能从客户端获取的每个数据都可能被欺骗,因此不要指望每个用户只传输100%正确的数据。

但您可以通过nodeJS中的req.headers['user-agent']获取客户使用权,这里是a list of many mobile browsers

答案 4 :(得分:0)

就我而言,ua-parser-js是最好的免费解决方案。 缩小版本位于https://github.com/faisalman/ua-parser-js/tree/master/dist

然后您需要做的就像

<script src="ua-parser.min.js" charset="utf-8"></script>
<script type="text/javascript">

var parser = new UAParser();
var result = parser.getResult();
alert(result.device.vendor);

</script>

在此之前,我已经尝试过platform.js和mobile-detect.js,但是它们的检测范围对于我的应用程序来说太窄了。