目前,
在 Windows-11 设备上,我得到的
navigator.userAgent
值为 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77
,与 Windows-10 相同。
为了区分 Windows-10 与 Windows-11,我使用了 User-Agent 客户端提示
navigator.userAgentData.getHighEntropyValues(['platformVersion']).then(function(uapv){
console.log(uapv.platformVersion);
var winVer = Number(uapv.platformVersion.split('.')[0]);
if(winVer>10){
console.log("It's Win11")
}else{
console.log("It's Not Win11");
}
});
但是,
用户代理客户端提示仅在 Chrome/Edge/Opera 中受支持,但在 Firefox 中不受支持。
那么,有没有可用于在 Firefox 中检测 Windows-11 的技术/库?
是的,微软自己已经使用javascript给出了这个解决方案。
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"); }
});
供参考https://learn.microsoft.com/en-us/microsoft-edge/web-platform/how-to-detect-win11
编辑:我还没有测试它是否适用于 Firefox。但根据我自己的经验,它适用于 Brave 和 Chrome。
试试这个库:
https://github.com/bestiejs/platform.js
然后,做
platform.os
它应该给你类似的东西:Windows Server 2008 R2 / 7 x64
7
是这里的版本。