使用用户代理客户端提示检测 Windows 11
通过使用 UA-CH Windows 11 UA-CH Windows 10客户端User-Agent,网站可以区分 (用户) 。 浏览器User-Agent客户端提示格式向网站提供用户代理信息。
网站可以使用从浏览器发送的用户代理信息检测以下信息:
- 浏览器品牌。
- 浏览器版本号。
- 运行浏览器的设备平台。
网站有两种访问用户代理信息的方法:
- User-Agent旧版 (字符串) 。
- User-Agent客户端提示 (推荐) 。
有关这两种方法的详细信息,请参阅检测Microsoft Edge的网站。
在 Microsoft Edge (和 Chrome) 中,网站可以通过 Windows 11 和 Windows 10 客户端提示 User-Agent UA-CH (区分) 。 可以在以下 UA-CH 请求标头中找到此信息:
头字段 | 指示Windows 10 | 指示Windows 11 |
---|---|---|
Sec-CH-UA-Platform |
Windows |
Windows |
Sec-CH-UA-Platform-Version |
值介于 和 1.0.0 之间 10.0.0 |
13.0.0 及以上 |
User-Agent字符串不会进行更新以区分Windows 11和Windows 10。 我们不建议使用User-Agent字符串来检索用户代理数据。 不支持客户端提示User-Agent无法区分浏览器Windows 11和Windows 10。
支持客户端提示User-Agent浏览器
下表显示哪些浏览器支持区分Windows 11和Windows 10。
浏览器 | 通过客户端提示User-Agent区别? |
---|---|
Microsoft Edge 94 及以上 | 是 |
Chrome 95 及以上 | 是 |
Opera | 是 |
Firefox | 否 |
Internet Explorer 11 | 否 |
检测数据示例Windows 11
以下代码将检测Windows 11:
navigator.userAgentData.getHighEntropyValues(["platformVersion"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") {
const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
if (majorPlatformVersion >= 13) {
console.log("Windows 11 or later");
}
else if (majorPlatformVersion > 0) {
console.log("Windows 10");
}
else {
console.log("Before Windows 10");
}
}
else {
console.log("Not running on Windows");
}
});
使用 优化检测性能 Critical-CH
目前,网站服务器必须将Accept-CH``Sec-CH-UA
响应标头发送到浏览器客户端,以请求默认情况下未在标头中发送的较高信息向域。 下图显示了浏览器向服务器发送请求标头,包括 user agent: <UA string>
和 接收响应标头,包括 Accept-CH: sec-ch-ua-platform
。
在此初始请求期间,客户端将记录 Accept-CH
首选项,并默认在后续请求中包括 sec-ch-ua-platform
首选项。
为了进一步优化Critical-CH``Accept-CH
此流,除了标头之外,还可以使用新标头立即重新发送请求标头,而无需重新加载页面。 下图显示了浏览器向服务器发送请求标头,包括 user agent: <UA string>
和 接收响应标头,包括 Accept-CH: sec-ch-ua-platform
Critical-CH: sec-ch-ua-platform
和 。 然后,浏览器立即向服务器发送请求标头。
从 Microsoft Edge版本 96 开始Critical-CH
,可以使用新标头接收具有优化性能的所需高向度标头。
请记住, Critical-CH
和 Accept-CH
首选项将一直保留,直到清除会话 Cookie,或者直到用户清除给定源的站点数据或 Cookie。 有关 有关详细信息, Critical-CH
请参阅客户端 提示可靠性。
检测特定Windows版本
若要检测特定版本的Windows,请使用客户端提示中的以下User-AgentplatformVersion
值:
版本 | platformVersion |
---|---|
Win7/8/8.1 | 0 |
Win10 1507 | 1 |
Win10 1511 | 2 |
Win10 1607 | 3 |
Win10 1703 | 4 |
Win10 1709 | 5 |
Win10 1803 | 6 |
Win10 1809 | 7 |
Win10 1903 | 8 |
Win10 1909 | 8 |
Win10 2004 | 10 |
Win10 20H2 | 10 |
Win10 21H1 | 10 |
Win10 21H2 | 10 |
Win11 | 13+ |