【问题标题】:Detecting device brand检测设备品牌
【发布时间】:2013-04-27 16:56:18
【问题描述】:

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

【问题讨论】:

  • 找出答案的一种方法是使用实​​际设备并访问其中一个“我的用户代理”站点,然后找出答案。据我所知,其中一个网站让我的设备型号正确。它应该回答您的问题“是否有可能”
  • 我将此问题读作询问显示器或显示器的设备品牌

标签: javascript node.js device


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    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>
    

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

    【讨论】:

    • 感谢您提供宝贵的信息。我会测试并通知您。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        在服务器端,您可以使用设备 npm 模块非常轻松地完成此操作,如果您使用的是 Express.js,那么它就像蛋糕一样简单。

        安装模块。

        npm i --S express-device
        

        将 express 代码添加为中间件。

        var express = require('express');
        var app = express();
        var device = require('express-device');
        app.use(device.capture());
        
        app.get('/hello',function(req,res) {
          res.send("Hi to "+req.device.type.toUpperCase()+" User");
        });
        
        app.listen(3000);
        console.log("Listening to Port 3000");
        

        简单又甜美。

        参考:https://codeforgeek.com/2016/07/how-to-detect-device-type-in-nodejs/

        【讨论】:

          【解决方案6】:

          就我而言,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,但是它们的检测范围对于我的应用来说太窄了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-04-13
            • 2012-05-10
            • 1970-01-01
            相关资源
            最近更新 更多