JavaScript前端实现判断登录设备是移动端还是PC

 更新时间:2025年03月19日 09:29:08   作者:拉不动的猪  
这篇文章主要为大家详细介绍了JavaScript前端如何实现判断登录设备是移动端还是PC,文中的示例代码讲解详细,有需要的小伙伴可以参考下

原生 JS 判断设备类型方法

可通过以下两种主流方案实现设备类型检测:

‌方案一:基于 navigator.userAgent 的 User Agent 检测‌

实现代码‌:

function isMobileDevice() {
  const ua = navigator.userAgent || navigator.vendor || window.opera;
  const mobileRegex = /android|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile|windows phone|phone|webos|kindle|tablet/i;
  return mobileRegex.test(ua.toLowerCase());
}

逻辑说明‌:

  • 通过 navigator.userAgent 获取浏览器标识字符串‌。
  • 正则表达式匹配移动端关键词(如 androidiphonemobile 等)‌。
  • 返回 true 表示移动端,false 表示 PC 端。

!!!接下来是方案二,方案二不太建议使用,因为三折叠可能不止768

‌方案二:结合屏幕分辨率与 User Agent 检测(增强版) ‌

实现代码‌:

function detectDeviceType() {
  const ua = navigator.userAgent.toLowerCase();
  const isMobileUA = /mobile|android|iphone|ipad|ipod|windows phone|phone|webos/i.test(ua);
  const isSmallScreen = window.innerWidth <= 768;
  return isMobileUA || isSmallScreen ? 'mobile' : 'pc';
}

逻辑说明‌:

  • 同时检测 User Agent 和屏幕宽度(移动端通常小于等于 768px)‌。
  • 双条件验证减少误判(如 iPad 可能被识别为 PC 端)‌。

‌注意事项

User Agent 的局限性‌:部分浏览器可能伪造 UA(如 Chrome 移动端模拟 PC 模式)‌。

平板设备处理‌:若需区分平板与手机,需额外增加关键词(如 ipadtablet)‌。

动态响应式场景‌:建议结合 CSS 媒体查询实现布局适配,而非仅依赖 JS 检测‌。

‌代码调用示例

if (isMobileDevice()) {
  console.log("当前设备为手机/平板");
} else {
  console.log("当前设备为 PC");
}

‌1. 基于 navigator.userAgent 的插件方案‌

推荐插件‌:mobile-detect.jsplatform.js实现逻辑‌:

  • 插件通过解析 navigator.userAgent 中的设备标识符(如 AndroidiPhoneWindows 等)实现设备判断‌。
  • 支持更细分的设备类型检测(如平板、手机、PC)‌。

代码示例(以 mobile-detect.js 为例) ‌:

// 引入插件
import MobileDetect from 'mobile-detect';

// 初始化检测器
const md = new MobileDetect(navigator.userAgent);

// 判断设备类型
if (md.mobile()) {
  console.log("移动端登录设备(手机/平板)");
} else if (md.tablet()) {
  console.log("平板设备");
} else {
  console.log("PC 端设备");
}

‌2. 结合屏幕分辨率的增强方案‌

推荐插件‌:react-device-detect(适用于 React 项目)

实现逻辑‌:

  • 通过 User Agent 和屏幕宽度综合判断设备类型,减少误判‌。
  • 支持动态响应式场景(如横竖屏切换)‌。

代码示例‌:

import { isMobile } from 'react-device-detect';

if (isMobile) {
  console.log("移动端登录设备");
} else {
  console.log("PC 端登录设备");
}

注意事项

  • User Agent 的局限性‌:

    • 浏览器可能伪造 UA(如 Chrome 的“桌面模式”模拟 PC 端)‌。
    • 建议结合后端设备指纹(如 IP、设备型号)增强准确性‌。
  • 平板设备的特殊处理‌:

    • 部分平板(如 iPad)可能被识别为 PC 端,需额外判断 navigator.platform(如 MacIntel 表示 iPad)‌。
  • 动态设备切换场景‌:

    • 监听 window.resize 事件,更新设备状态(如横竖屏切换导致屏幕宽度变化)‌。

‌推荐插件对比‌

插件适用场景优点
mobile-detect.js需要细分设备类型(手机/平板)支持 5000+ 设备类型识别
react-device-detectReact 项目集成简单,支持响应式设计
platform.js轻量级检测(仅区分 PC/移动端)体积小(< 5KB)

到此这篇关于JavaScript前端实现判断登录设备是移动端还是PC的文章就介绍到这了,更多相关JavaScript判断设备类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解js前端代码异常监控

    详解js前端代码异常监控

    本文主要介绍了js代码异常监控的相关知识。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 利用 JavaScript 实现并发控制的示例代码

    利用 JavaScript 实现并发控制的示例代码

    这篇文章主要介绍了利用 JavaScript 实现并发控制的示例代码,本文通过实例代码给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • js实现跨域的方法实例详解

    js实现跨域的方法实例详解

    这篇文章主要介绍了js实现跨域的方法,实例分析了几种常用的javascript实现跨域的技巧,需要的朋友可以参考下
    2015-06-06
  • 如何使用gpu.js改善JavaScript的性能

    如何使用gpu.js改善JavaScript的性能

    这篇文章主要介绍了如何使用gpu.js改善JavaScript的性能,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下
    2020-12-12
  • 详解javascript中的Strict模式

    详解javascript中的Strict模式

    我们都知道javascript是一个弱类型语言,在ES5之前,javascript的程序编写具有很强的随意性,我可以称之为懒散模式(sloppy mode)。比如可以使用未定义的变量,可以给对象中的任意属性赋值并不会抛出异常等等。本文将详细介绍javascript中的Strict模式。
    2021-06-06
  • JS继承实现方法及优缺点详解

    JS继承实现方法及优缺点详解

    这篇文章主要介绍了JS继承实现方法及优缺点详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JavaScript正则表达式替换字符串中图片地址(img src)的方法

    JavaScript正则表达式替换字符串中图片地址(img src)的方法

    这篇文章主要介绍了JavaScript正则表达式替换字符串中图片地址(img src)的方法,结合实例形式分析了JS正则替换的常用技巧与注意事项,需要的朋友可以参考下
    2017-01-01
  • 懒就要懒到底——鼠标自动点击(含时间判断)

    懒就要懒到底——鼠标自动点击(含时间判断)

    懒就要懒到底——鼠标自动点击(含时间判断)...
    2007-02-02
  • 小程序自定义弹框效果

    小程序自定义弹框效果

    这篇文章主要为大家详细介绍了小程序自定义弹框效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • html5 canvas 详细使用教程

    html5 canvas 详细使用教程

    本文主要对html5 canvas的使用进行了详细的介绍。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论