
前端精确识别用户电脑架构:ARM还是x86?
为了优化用户体验,准确识别用户设备架构(ARM或x86)至关重要。本文介绍两种前端检测方法。
方法一:利用navigator.userAgentData API
现代浏览器提供navigator.userAgentData.getHighEntropyValues() API,可以获取高精度设备信息,包括架构和位数。 以下代码片段演示如何使用该API:
立即学习“前端免费学习笔记(深入)”;
navigator.userAgentData.getHighEntropyValues(["architecture", "bitness"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") { //仅限Windows系统
if (ua.architecture === 'x86') {
console.log(ua.bitness === '64' ? "x86_64" : "x86");
} else if (ua.architecture === 'arm') {
console.log(ua.bitness === '64' ? "arm64" : "arm32");
}
} else {
console.log("非Windows系统");
}
});
方法二:分析User-Agent字符串
传统的User-Agent字符串也包含架构信息,但可靠性较低,容易被伪造。 例如,一个Windows x86_64系统的User-Agent可能类似:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
其中"Win64; x64" 部分表明架构为x86_64。 然而,这种方法的准确性依赖于User-Agent字符串的格式,不同浏览器和操作系统可能差异较大,因此不推荐作为主要检测方法。 建议结合navigator.userAgentData API使用,以提高准确性。
选择哪种方法取决于你的项目需求和目标浏览器支持情况。 navigator.userAgentData API是更可靠的选择,但需要考虑浏览器兼容性。










