如何从JS Navigator对象中知道设备类型



有没有办法知道设备类型-例如:Navigator API的移动设备、平板电脑-https://developer.mozilla.org/en-US/docs/Web/API/Navigator?

在安全上下文中,您可以使用navigator.userAgentData,它提供了一个NavigatorUAData对象,其中包含一些关于用户代理(浏览器(的有用信息,包括mobile标志。getHighEntropyValues方法返回一个承诺,该承诺将用更详细的信息来实现(如果用户允许(或被拒绝(如果不允许,或者浏览器不提供高熵值(。

对于还不支持userAgentData的平台,您可以重新解析userAgent字符串,但要注意,userAgent字符串是出了名的不可靠且容易被欺骗。

您可以使用以下函数:

getDeviceType() {
const ua = navigator.userAgent;
const tabletRegex = /(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i;
const mobRegex = /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/;
if (tabletRegex.test(ua)) return "tablet";
if (mobRegex.test(ua)) return "mobile";
return "desktop";
}

最新更新