我想,在开发的过程当中,很多小伙伴会碰到某个网页,需要在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获取移动端设备信息插件