js判断设备是PC端还是移动端

2023-11-02

方法一

function IsPC() {

var userAgentInfo = navigator.userAgent;

var Agents = ["Android", "iPhone",

"SymbianOS", "Windows Phone",

"iPad", "iPod"];

var flagPc = true;

for (var v = 0; v < Agents.length; v++) {

if (userAgentInfo.indexOf(Agents[v]) > 0) {

flagPc = false;

break;

}

}

return flagPc;

}



var flagZt = IsPC();

//console.log(flag) //true为PC端,false为手机端

方法二

var system = {};

var p = navigator.platform;

console.log(p);

document.getElementById("test2").innerHTML = p;

system.win = p.indexOf("Win") == 0;

system.mac = p.indexOf("Mac") == 0;

if (system.win || system.mac) {//如果是电脑

console.log('pc');

} else { //如果是手机,

console.log('移动端');

}

方法三

 区分移动端:

export const isMobile = () => {
    return /(iPhone|iPad|iPod|iOS|Android|Linux armv8l|Linux armv7l|Linux aarch64)/i.test(navigator.platform);
};

区分PC端:

var system = {};
system.pingtai = /(Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64)/i.test(navigator.platform);
if (system.pingtai) {
//电脑
} else {  
//手机
}

总结

方法一:是根据用户代理来判断是pc端还是移动端

方法二:是根据硬件平台来判断是pc端还是移动端

方法三:是根据硬件平台来判断是pc端还是移动端(更严谨了,但是要注意维护)

这两者结合一下 才是最方便的 个人推荐方法二,如果想更严谨就用方法三

 如果是使用电脑浏览器然后f12选择移动端浏览,这个时候用户代理就会认为它是移动端,硬件平台识别的话,不管怎么切换,都是一个平台

备注:

windows电脑的硬件平台是显示:Win32

mac电脑的硬件平台是显示:Maclntel

安卓手机的硬件平台是显示:

在微信浏览器和手机自带浏览器:Linux aarch64

在uc浏览器 :Linux armv8l

苹果手机的硬件平台是显示:iphone

自己测试的麒麟系统的硬件平台是显示:Linux mips64

别人测试的麒麟系统和统信系统的硬件平台是显示:Linux aarch64

移动端:iPhone|iPad|iPod|iOS|Android|Linux armv8l|Linux armv7l|Linux aarch64

PC端: Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64


 

参考链接:

H5 navigator.platform 属性值枚举以及使用场景__Dream maker的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js判断设备是PC端还是移动端 的相关文章

  • 以太网眼图测试整改案例分析

    故障现象 以太网眼图测试中 出现不通过现象 结果如下 由上可知 主要是眼图模板下方不能通过 更换不同的PHY芯片 结果依旧 故障分析 眼图测试 其测试内容为MAC芯片 经过变压器到网口之间的原理设计 PCB布局及走线 故障电路设计如下 PC
  • 机器学习之线性回归:OLS 无偏估计及相关性python分析

    戳上面的蓝字关注我们 作者 alg flody 编辑 Emily 0 回顾 在最近的推送中 先后总结了最小二乘法的原理 两个求解方法 直接法和梯度下降 最后利用这两种思路进行了python实战 在用直接法求出权重参数时 有一个假设是某个矩阵

随机推荐

  • 用BF写一个根据位置值实现指针自增的代码

    BF代码 根据位置值实现指针自增 BrainFuck 实现指针会根据目前位置存储的值来自增 比如 4 8 则指针会移动到 12 即 4 8 目前位置 n 的前3个位置 n 1 n 2 n 3 需要为0以便转移数据 代码 gt lt lt l
  • vue平滑滚动到指定位置

    需求 锚点导航问题 点击导航跳到对应的模块 两种方式 1 滚动盒子滚动到指定高度 scrollTo offsetTop每个模块顶部距离可滚动盒子的顶部偏移的像素值 goAnthor selector const height documen
  • windows中如何将已安装的nodejs高版本降级为低版本

    第一步 先清空本地安装的node js版本 1 按健win R弹出窗口 键盘输入cmd 然后敲回车 或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出 输入cmd再点击回车键 然后进入命令控制行窗口 并输入where node查看之前本地
  • 关于两重viewpager+fragment,再重回第二个viewpager消失问题

    问题 第一次进入第二个viewpager中时没有问题 当第二次次进入第二个viewpager中时 viewpager显示空白 解析 1 在第二个fragment中设置viewpager的适配器时 调用了 ViewPagerAdapter n
  • 大数据导论三——大数据技术

    大数据技术层面及其功能 数据采集和预处理 功能 利用ETL工具将分布的数据 抽取到临时中间层后进行处理 最后加载到数据仓库中 成为联机分析处理 数据挖掘的基础 利用日志采集工具把实时采集的数据作为流计算的输入 进行实时处理分析 利用网页爬虫
  • ruoyi-vue整合tdengine多数据源

    ruoyi vue整合tdengine多数据源 实现方式一 在application druid yml配置从库数据源 多数据源使用 注意事项 实现方式二 在application druid yml配置从库数据源 添加TDengineCo
  • 旋转链表(图解说明)

    Leetcode题目描述 题目链接 旋转链表 题目很简洁 就是移动节点 但其中有隐含的意思 要将链表的每个节点向右移动 使每个节点在新的位置 由于尾结点后面没有了节点 要移动就要形成环 所有的节点在环里面转 移动完后又把环断开 形成新的链表
  • Linux -- 线程(一)

    线程 一 线程概念 Linux内核线程实现原理 线程共享资源 线程非共享资源 线程的优点 线程的缺点 创建一个线程 线程的退出 线程退出的注意事项 线程的回收 多线程练习 杀死线程 取消点 线程分离 线程属性 线程属性 分离态 Native
  • C++简单人机交互——走迷宫

    一个简单的小方块走迷宫程序 include
  • webpack 配置介绍

    一 webpack webpack 仅是一个打包工具 不会处理打包过程的东西例如 es6等新特性 如果需要处理这些新特性需要配置单独的加载bebblle loader 等 devDependencies webpack 5 76 3 打包工
  • Android攻城狮—全套必备神级工具(开发,插件,效率)

    http www jianshu com p 0911efbf8009
  • Centos6.4 用rpm方式安装MySql5.6

    1 查看系统是否安装了MySQL 使用命令 rpm qa grep mysql 2 卸载已安装的MySQL 卸载mysql命令如下 rpm e nodeps mysql libs 5 1 61 4 el6 x86 64 要将 var lib
  • 第14.15节 爬虫实战1:使用Python和selenium实现csdn博文点赞

    写在前面 本文仅供参考学习 请勿用作它途 禁止转载 在开始学爬虫时 学习了csdn博客专家 id 明天依旧可好 柯尊柏 实战项目二 实现CSDN自动点赞 的文章 文章介绍了通过Python和selenium模块实现csdn指定文章点赞的过程
  • argis sde 服务连接,arcgis9.3版本场合,arcgis10.2采用直接连接数据库

    1 arc gis 9 3 sde 需要创建 服务 即需要安装arcsde 2 台 或者 多台 机器通过服务连接 2 通过服务连接数据服务
  • JMeter websocket接口测试

    前言 在一个网站中 很多数据需要即时更新 比如期货交易类的用户资产 在以前 这种功能的实现一般使用http轮询 即客户端用定时任务每隔一段时间向服务器发送查询请求来获取最新值 这种方式的弊端显而易见 有可能造成数据更新不及时 如果前端轮询频
  • 黑马程序员----职工管理系统(c++)

    目录 一 项目概要 二 代码 三 演示效果 四 项目注意点 五 一点点感悟 一 项目概要 1 面向角色 普通员工 经理和老板 2 主要功能 增加员工信息 显示员工信息 删除离职员工信息 修改员工信息 查找员工信息 按照编号排序 清空所有文档
  • PVE虚拟化平台之创建虚拟机流程

    PVE虚拟化平台之创建虚拟机流程 一 PVE介绍今天 2022 年 11 月 17 日 有236篇文章可用 二 登录PVE平台 三 登录PVE系统检查环境 1 进入PVE底层系统的shell命令终端 2 检查系统版本 3 检查本地磁盘存储
  • SQLMAP中文翻译详细解读

    H 1 5 5 stable V http sqlmap org 使用示例 python3 sqlmap 选项 选项 h help 显示基础帮助信息然后退出 hh 显示更详细的帮助信息然后退出 version 显示程序版本号然后退出 v V
  • JavaScript:异步编程

    异步编程是一种编程模式 JavaScript 是单线程的 只有一个线程可以执行代码 这意味着 所有代码都只能在一个线程中按顺序执行 这很容易导致代码执行的阻塞 代码的每一个语句都需要被执行 为了完成某个计算任务需要一定的执行时间 不同任务的
  • js判断设备是PC端还是移动端

    方法一 function IsPC var userAgentInfo navigator userAgent var Agents Android iPhone SymbianOS Windows Phone iPad iPod var