当前位置: 首页 > 知识库问答 >
问题:

从用户代理字符串检测设备类型

邓德惠
2023-03-14

我试图从用户代理字符串中检测“桌面”、“移动设备”和“平板电脑”。我需要的只是这三个粗略的分类。不需要品牌和设备名称。我有一些用户代理的例子:

“Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;WOW64;Trident/6.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E;InfoPath.3)”

“Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/38.0.2125.104 Safari/537.36”

是否有任何现有的API可以做到这一点?

根据本文最后一句话,在用户代理字符串中查找关键字“mobi”似乎可以处理大多数情况。但这似乎太容易成为事实。。。。。。

共有2个答案

濮赤岩
2023-03-14

我很好奇:为什么设备类型很重要?

不是试图刺耳,而是试图理解一个用例。

在科尔多瓦,您可以检查这个,但现在可以确定直接的超文本标记语言。我以前为iOS做过。我需要这样做来检测何时需要在科尔多瓦应用程序的页面标题中添加20px的边距,因为iOS在几个版本前做了这个更改。

我是这样做的:

    if (parseFloat(window.device.version) >= 7.0 ) {
        $allHeaders.css( "margin-top", "20px" );       
    }
涂承运
2023-03-14

你可以使用UADetector库来实现这一点。自0.9.10版本以来,它增加了设备分类功能

UADetector是一个库,用于识别超过190种不同的桌面和移动浏览器,以及其他130种用户代理,如订阅阅读器、电子邮件客户端和多媒体播放器。此外,甚至可以识别出400多个机器人,如BingBot、Google Bot或Yahoo Bot。

 类似资料:
  • 考虑到历史原因以及现代浏览器中用户代理字符串的使用方式,通过用户代理字符串来检测特定的浏览器并不是一件轻松的事。因此,首先要确定的往往是你需要多么具体的浏览器信息。一般情况下,知道呈现引擎和最低限度的版本就足以决定正确的操作方法了。例如,我们不推荐使用下列代码: if (isIE6 || isIE7) { //不推荐!!! //代码 } 这个例子是想要在浏览器为IE6 或IE7 时执行相应

  • 检测网站是否正在移动设备或台式机/笔记本电脑上打开。 使用正则表达式来测试 navigator.userAgent 属性以确定打开设备是移动设备还是台式机/笔记本电脑。 const detectDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.us

  • 第三种,也是争议最大的一种客户端检测技术叫做用户代理检测。用户代理检测通过检测用户代理字符串来确定实际使用的浏览器。在每一次HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过JavaScript 的navigator.userAgent 属性访问。在服务器端,通过检测用户代理字符串来确定用户使用的浏览器是一种常用而且广为接受的做法。而在客户端,用户代理检测一般被当作一种

  • 问题内容: 是否可以找出在PHP中编码为base64字符串的图像的类型? 我没有访问原始图像文件的方法,只有编码的字符串。从我所看到的,可以从字符串表示形式创建图像资源(从base64解码后),但是它会自动检测图像类型,并且图像资源本身是一种特殊的PHP表示形式。如果我想再次将图像另存为文件,我不知道保存的类型是否与创建String表示形式的原始类型相对应。 问题答案: FileInfo可以为您做

  • HTTP 规范(包括1.0 和1.1 版)明确规定,浏览器应该发送简短的用户代理字符串,指明浏览器的名称和版本号。RFC 2616(即HTTP 1.1 协议规范)是这样描述用户代理字符串的:“产品标识符常用于通信应用程序标识自身,由软件名和版本组成。使用产品标识符的大多数领域也允许列出作为应用程序主要部分的子产品,由空格分隔。按照惯例,产品要按照相应的重要程度依次列出,以便标识应用程序。” 上述规

  • 本文向大家介绍从PHP中的字符串检测语言,包括了从PHP中的字符串检测语言的使用技巧和注意事项,需要的朋友参考一下 无法从字符类型中检测到语言。还有其他方法,但不能保证完全准确性。'TextLanguageDetect梨包'可以正确使用。以下是相同的示例代码- 示例 输出结果 这将产生以下输出- 它易于使用,并具有52种语言数据库。但是不利的是,使用此软件包无法检测到东亚语言。