Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. HTTP
  3. 参考
  4. HTTP 标头
  5. User-Agent
  6. Firefox 用户代理字符串参考

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

Firefox 用户代理字符串参考

本文档介绍了 Firefox 4 及更高版本和基于 Gecko 2.0 及更高版本的应用程序中使用的用户代理字符串。有关 Gecko 2.0 中字符串变化的细目,请参阅Firefox 4 的最终用户代理字符串博文。另请参阅本文档中的用户代理嗅探和这篇Hacks 博文

一般形式

Firefox 的用户代理字符串可被拆分为以下四个部分:

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion

  • Mozilla/5.0 是表示浏览器与 Mozilla 兼容的通用标记,目前几乎所有浏览器都使用该标记。
  • platform 描述浏览器运行的本地平台(如 Windows、Mac、Linux 或 Android),以及是否是手机。Firefox OS 手机显示“Mobile”;web 就是它的平台。请注意,platform 可以由多个“;”分隔的标记组成。详情和示例请参阅下文。
  • rv:geckoversion 表示 Gecko 的发行版本(如“17.0”)。
  • Gecko/geckotrail 表示浏览器基于 Gecko。
  • 在桌面上,geckotrail 是固定字符串“20100101”。
  • Firefox/firefoxversion 表示浏览器是 Firefox,并提供版本(如“17.0”)。
  • 从移动版 Firefox 10 开始,geckotrailfirefoxversion 相同。

备注:嗅探基于 Gecko 的浏览器(如果你必须嗅探浏览器引擎而不是使用特性检测)的推荐方法是检测“Gecko”和“rv:”字符串是否存在,因为某些其他浏览器包含"like Gecko"标记。

对于其他基于 Gecko 的产品,UA 字符串会符合以下两个规则中的一个,除了下面的描述外,其他字段与上面描述的意义相同。

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail appname/appversionMozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion appname/appversion

  • appname/appversion 标明了应用名与版本,举个例子,它可以是“Camino/2.1.1”或“SeaMonkey/2.7.1”。
  • Firefox/firefoxversion 是一个可选的兼容标记,一些基于 Gecko 的浏览器选择加入,以达到对支持 Firefox 的网页的最大兼容。firefoxversion 应与其提供的 Gecko 版本对应的 Firefox 版本相同。一些基于 Gecko 的浏览器可能不会使用此标记,因此,在检测的时候,应当使用 Gecko 而非 Firefox。

在 Firefox 4 和 Gecko 2.0 之前,扩展和插件可以添加用户代理部分,但自从Firefox bug 581008 以来就不可能了。

手机和平板电脑指示器

UA 字符串的platform 部分表示 Firefox 是在手机还是平板设备上运行。当 Firefox 在手机设备上运行时,UA 字符串的platform 部分包含一个Mobile; 标记。当 Firefox 在平板设备上运行时,UA 字符串的platform 部分会出现Tablet; 标记。例如:

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

备注:版本号无关。请避免据此推断材料。

将内容定位到设备外形尺寸的首选方法是使用 CSS 媒体查询。但是,如果你使用 UA 嗅探将内容定位到设备外形,请在手机外形中查找Mobi(包括使用 "Mobi "的 Opera Mobile),而不要假设“Android”与设备外形之间存在任何关联。这样,如果 Firefox 浏览器采用其他手机/平板电脑操作系统,或者笔记本电脑采用 Android 系统,你的代码也能正常工作。此外,请使用触摸检测来查找触摸设备,而不是查找“Mobi”或“Tablet”,因为可能存在不是平板电脑的触摸设备。

备注:Firefox OS 设备在标识自己时不标注任何操作系统,例如“Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0”。web 就是它的平台。

Windows

Windows 用户代理有以下变化,其中x.y 是 Windows NT 版本(例如 Windows NT 6.1)。

Linux

Linux 是一个更加多样化的平台。你的 Linux 发行版可能包含一个可改变你的用户代理的扩展。下面是几个常见的例子。

Linux 版本Gecko 用户代理字符串
在 i686 CPU 上运行的 Linux 桌面版Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0
在 x86_64 CPU 上运行的 Linux 桌面版Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0

Android(版本 40 及以下)

设备类型Gecko 用户代理字符串
PhoneMozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0
TabletMozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0

Android(版本 41 及以上)

从版本 41 开始,Android 版 Firefox 浏览器将把 Android 版本作为platform 标记的一部分。为提高互操作性,如果浏览器运行的版本低于 4,它将报告 4.4。Android 4 及以上版本将准确报告版本。请注意,所有版本的 Android 系统都使用具有相同功能的 Gecko。

设备类型Gecko 用户代理字符串
PhoneMozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
TabletMozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

Android 版 Focus

从版本 1 开始,Focus 由 Android WebView 支持,并使用以下用户代理字符串格式:

Mozilla/5.0 (Linux; <Android Version> <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Version/4.0 Focus/<focusversion> Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>

WebView 上的平板电脑版本与手机版本基本相同,但不包含Mobile 标记。

从第 6 版开始,用户可以选择使用基于 GeckoView 的安卓版 Focus,它有一个隐藏偏好:使用 GeckoView UA 字符串来宣传 Gecko 兼容性。

Focus 版本(渲染引擎)用户代理字符串
1.0 (WebView Mobile)Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36
1.0 (WebView Tablet)Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36
6.0 (GeckoView)Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0

Android 版 Klar

自版本 4.1 起,Android 版 Klar 使用与Android 版 Focus 相同的 UA 字符串。在版本 4.1 之前,它发送的是Klar/<version>product/version 标记。

Klar 版本(渲染引擎)用户代理字符串
1.0 (WebView)Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Klar/1.0 Chrome/58.0.3029.83 Mobile Safari/537.36
4.1+ (WebView)Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/4.1 Chrome/62.0.3029.83 Mobile Safari/537.36
6.0+ (GeckoView)Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0

iOS 版 Focus

iOS 版 Focus 7 使用的用户代理字符串格式如下:

Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/7.0.4 Mobile/16B91 Safari/605.1.15

注意:该用户代理是从 iPhone XR 模拟器上获取的,在不同设备上可能有所不同。

Fire TV 版 Firefox

Fire TV 版 Firefox 3(也可能是更早版本)使用的用户代理字符串格式如下:

Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev>
Firefox TV 版本用户代理字符串
v3.0Mozilla/5.0 (Linux; Android 7.1.2) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/3.0 Chrome/59.0.3017.125 Safari/537.36

Echo Show 版 Firefox

从版本 1.1 起,Echo Show 版 Firefox 使用的用户代理字符串格式如下:

Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev>
Echo Show 版 Firefox 版本用户代理字符串
v1.1Mozilla/5.0 (Linux; Android 5.1.1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.1 Chrome/59.0.3017.125 Safari/537.36

Firefox OS

设备类型Gecko 用户代理字符串
PhoneMozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0
TabletMozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0
TVMozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0
设备特定Mozilla/5.0 (Mobile;nnnn; rv:26.0) Gecko/26.0 Firefox/26.0

具有设备特征的用户代理字符串

尽管 Mozilla强烈反对,然而一些手机制造商仍然会在其设备的 UA 字符串中包含标明设备 ID 的字段。在这种情况下,Firefox OS 的 UA 字符串会与上表中所示的具有设备特征的字符串保持一致,其中nnnn; 代表设备制造商的设备代码(参见指南)。其中一些是以下几个形式:“NexusOne;”、“ZTEOpen;”、“Open C;”(注意,同样不鼓励在其中加入空格)。我们提供这些信息是为了协助你的 UA 检测逻辑,但 Mozilla 不鼓励检测 UA 字符串中的设备 ID。

这里有一个可以检测所有移动设备的 JavaScript 正则表达式,包含那些 UA 字符串中包含设备 id 的设备:

js
/mobi/i;

其中i 为大小写敏感的标记,而mobi 则将匹配所有的移动设备。

Firefox OS 版本号

由于 Firefox OS 的版本号未被包含于 UA 字符串中,我们可以通过 UA 字符串中的 Gecko 版本号来推断其版本信息。

Firefox OS 版本号Gecko 版本号
1.0.118.0
1.118.1
1.226.0
1.328.0
1.430.0
2.032.0
2.134.0
2.237
2.544

备注:通过查看Mercurial 版本库名称,可以较容易地找出对应关系。其中以mozilla-b2g 开头的发布便属于 Firefox OS,在其名字中包含了 Firefox OS 与 Gecko 的版本号。

Firefox OS 的版本号由 4 位数字组成:X.X.X.Y。前两位数字由 Mozilla 产品团队决定,表明是包含新特性的版本(如:v1.1, 1.2 等)。第三位数字随安全更新而自增(约 6 周左右),第四位数字由 OEM 维护。

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp