有没有办法知道设备类型-例如: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";
}