javascript:检查用户代理是不是在桌面设备上

Posted

技术标签:

【中文标题】javascript:检查用户代理是不是在桌面设备上【英文标题】:javascript: Checking if user agent is on desktop devicejavascript:检查用户代理是否在桌面设备上 【发布时间】:2014-12-24 10:03:10 【问题描述】:

我浏览了整个网络,但仍然找不到一个相当不错的方法来检查浏览器是在台式计算机上还是在平板电脑/移动设备上使用。

考虑下一个问题,有桌面(桌面表面)的触摸设备。 最终我试图实现的是在接下来的两个之间分开: 1. 开启方向切换的触控设备 2. 实际上是桌面设备的触摸设备

有什么推荐的方法来检查这个吗?

另外,我尝试了下一个 3rd 方 WURFL.io,但我发现了 2 个问题: 它为您提供了一个过于简单的结果(其中封装了所有决策),并且在 chrome 上模拟移动设备时基本上无法正常工作。

【问题讨论】:

【参考方案1】:

你可以使用

if (navigator.userAgent.match(/(iPhone|iPod|iPad|android|BlackBerry|IEMobile)/)) 
  dosomething();
 else 
   dosomething(); //this is the browser

【讨论】:

【参考方案2】:

基于先前答案的一些改进方法:返回布尔值而不是数组。

let isMobile = Boolean(navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)?.length)

【讨论】:

以上是关于javascript:检查用户代理是不是在桌面设备上的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 如何检查手机/平板电脑的用户代理

Messenger API:用户是移动还是桌面?

使用“桌面模式”浏览器仅检测移动用户

检查移动设备是不是正在请求桌面站点

在linux系统里,如何检查新插入的USB设备是不是被系统识别?

桌面谷歌浏览器拼写检查是不是受到操作系统的影响?