javascript检测设备类型

438 阅读1分钟

我想,在开发的过程当中,很多小伙伴会碰到某个网页,需要在PC端展示成A样,然而在移动端展示成B样,这就需要区分设备类型了。

最简单的检测移动设备的方式就是:检查 userAgent 里是否存在关键字 mobile

let isMobile = navigator.userAgent.toLowerCase().match(/mobile/i))
if (isMobile) {
    console.log('移动设备')
} else {
    console.log('非移动设备')
}

上边只是区分出移动端,如果你想区分的再细致一些,我们不妨这样做:

const isMobile = navigator.userAgent.toLowerCase().match(/mobile/i), // 移动设备
      isTablet = navigator.userAgent.toLowerCase().match(/tablet/i), // 平板
      isAndroid = navigator.userAgent.toLowerCase().match(/android/i), // Android
      isiPhone = navigator.userAgent.toLowerCase().match(/iphone/i), // iPhone
      isiPad = navigator.userAgent.toLowerCase().match(/ipad/i) // iPad
 
  console.log("移动设备:", isMobile)
  console.log("平板:", isTablet)
  console.log("Android:", isAndroid)
  console.log("iPhone:", isiPhone)
  console.log("iPad:", isiPad)

额... 这应该能满足绝大部分的需求了,如果你还检测出操作系统如 Windows/Mac 等,那就不建议自己写了,使用一个类型检测库吧,推荐使用 mobile-detect.js

这个库的用法可以参考掘金的另一篇文章:我的笔记:mobile-detect获取移动端设备信息插件