mobile - Microsoft Edge 的用户代理字符串名称是什么?

标签 mobile microsoft-edge user-agent

我正在制作一个网站,希望它在即将正式发布时与即将推出的 Microsoft Edge 兼容。更具体地说,是它的移动版本。有谁知道什么字符串将标识 Edge 移动浏览器(例如,“IE Mobile”标识 Internet Explorer 的移动版本)。

最佳答案

Microsoft Edge UA 字符串:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

I detail why in this blog post.

Neowin 最近报道称,微软 Windows 10 的新浏览器 Spartan 使用 Chrome UA 字符串,“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0″。 这是故意的。

您还会注意到整个字符串以“Edge/12.0”结尾,而 Chrome 则不然。

我应该指出,这与微软对 IE 11 所做的事情并没有根本不同,IE 11 在 Windows 8 上显示为:Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) 就像 Gecko 一样这篇文章中对此进行了解释。

什么是用户代理嗅探?

通常,Web 开发人员会通过 UA 嗅探来进行浏览器检测。 Mozilla 在他们的博客上对此做了很好的解释:

Serving different Web pages or services to different browsers is usually a bad idea. The Web is meant to be accessible to everyone, regardless of which browser or device they’re using. There are ways to develop your web site to progressively enhance itself based on the availability of features rather than by targeting specific browsers.

Here’s a great article explaining the history of the User Agent.

通常,懒惰的开发人员只会嗅探 UA 字符串,并根据他们认为查看者正在使用的浏览器禁用其网站上的内容。 Internet Explorer 8 是开发人员常见的挫败点,因此他们会经常检查用户是否使用任何版本的 IE,并禁用某些功能。

The Edge team details this even deeper on their blog.

所有用户代理字符串都包含比您正在使用的实际浏览器更多的有关其他浏览器的信息 - 不仅仅是 token ,还包括“有意义的”版本号。

Internet Explorer 11 的 UA 字符串:

Mozilla/5.0(Windows NT 6.3;Trident/7.0;rv:11.0),如 Gecko

Microsoft Edge UA 字符串:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

Patrick H. Lauke 在 W3C 讨论中将 userAgent 属性恰本地描述为“不断增长的谎言”。 (“或者更确切地说,添加足够的遗留关键字的平衡行为不会立即让旧的 UA 嗅探代码崩溃,同时仍然试图传达一些实际有用且准确的信息。”)

我们建议Web开发者尽可能避免UA嗅探;现代网络平台的功能几乎都可以通过简单的方式检测到。例如, Modernizr 库是一种奇妙而简单的检测特征的方法。

在过去的一年里,我们看到一些 UA 嗅探网站已更新为检测 Microsoft Edge……只是为其提供旧版 IE11 代码路径。这不是最好的方法,因为 Microsoft Edge 匹配“WebKit”行为,而不是 IE11 行为(任何 Edge-WebKit 差异都是我们有兴趣修复的错误)。

根据我们的经验,Microsoft Edge 在这些网站的“WebKit”代码路径上运行效果最佳。此外,随着互联网在更广泛的设备上可用,请假设未知的浏览器是好的 - 请不要限制您的网站仅在一小部分当前已知的浏览器上运行。如果您这样做,您的网站将来几乎肯定会崩溃。

结论

通过提供 Chrome UA 字符串,我们可以解决这些开发人员正在使用的黑客行为,从而为用户提供最佳体验。

关于mobile - Microsoft Edge 的用户代理字符串名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30591706/

相关文章:

css - 移动端横向溢出

javascript - 微软边缘 API 错误 "browser is not defined"

ios - Mobile Safari 自动生成调用电话号码的新元素,这会影响设计

heroku - 如何在 Heroku 日志中查看请求用户代理

flutter - Flutter弹出对话框不会在setState()上更新

jQuery Mobile 无法读取触发器 'options' 上未定义的 ('pagecreate' )

android - 响应式网站在移动设备上缩放至 200%

google-analytics - 如何在 Google Analytics 中识别 Microsoft Edge

javascript - 为什么 ParseInt() 在 Microsoft Edge 上返回 NaN?

javascript - URL 中的 HTML 和 CSS 导致 404 错误(用户代理 = Trident/4.0)