JavaScript 使用して Windows 11 を判定する
PHPで UserAgent による判定では、「Windows NT 10.0」となった場合、
Windows 11 と Windows 10 の区別ができなくなっています。
「platformVersion」を利用して判定を行い、ブラウザ内に表示する JavaScript を作ってみました。
<span id="sampleOS">OS Judgment</span>
<script type="text/javascript">
//Windows11判定
navigator.userAgentData.getHighEntropyValues(["platformVersion"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") {
const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
if (majorPlatformVersion >= 13) {
document.getElementById("sampleOS").innerHTML= "Windows 11";
}
else if (majorPlatformVersion > 0) {
document.getElementById("sampleOS").innerHTML= "Windows 10";
}
else {
document.getElementById("sampleOS").innerHTML= "Before Windows 10";
}
}
else {
document.getElementById("sampleOS").innerHTML= "Not running on Windows";
}
});
</script>
※「platformVersion」では、Windows 10 の各バージョンの判別が可能になっているようです。