当前位置: 首页 > news >正文

js判断手机操作系统(ios、安卓、华为)

在网页中我们经常会针对不同操作系统做不同处理,我们通过js该怎么写才能更精准的判断出不同手机系统呢?系统自带的navigator.userAgent方法是没法精准区分安卓和华为的,所以海糖的建议是直接下载ua-parser-js插件来判断,很简单,直接按照我的步骤操作就可以啦!

一、安装ua-parser-js插件

如果是npm安装:


npm i ua-parser-js

如果是yarn安装:

yarn add ua-parser-js

二、引入

这里我们要注意result.os.name 和 result.device.vendor 的区别,前者是判断操作系统,后者是判断手机品牌,如果我们只区分安卓和ios,只用result.os.name判断就可以了,如果我们想细分华为手机,我们还需要用到 result.device.vendor,具体两种情况代码写在下面了:

1.如果只区分ios和安卓:

import { UAParser } from 'ua-parser-js'const parser = new UAParser()
const result = parser.getResult()
if(result.os.name === 'iOS'){//为ios手机做操作
}else if(result.os.name === 'Android'){//为安卓手机做操作
}

2.如果需要细分ios、安卓、华为:

import { UAParser } from 'ua-parser-js'const parser = new UAParser()
const result = parser.getResult()
if(result.os.name === 'iOS'){//为ios手机做操作
}else if(result.os.name === 'Android'){if(result.device.vendor === "Huawei"){//为华为手机做操作}else{//为安卓手机做操作}
} else if(result.os.name === 'Huawei'){//为华为手机做操作
}else{
}

上面就是区分不同手机的精准判断方法了,关于ua-parser-js有疑问的欢迎留言哦!


文章转载自:

http://E96x08gO.brrxz.cn
http://pkLldHUG.brrxz.cn
http://Axn5DSQs.brrxz.cn
http://RGpohhP7.brrxz.cn
http://jHg4YNGW.brrxz.cn
http://XkxCep8c.brrxz.cn
http://eC05JZhE.brrxz.cn
http://vQv2oD13.brrxz.cn
http://NCZqFIQ8.brrxz.cn
http://chcUVXYb.brrxz.cn
http://gH0Y5ion.brrxz.cn
http://DJPYaa10.brrxz.cn
http://k3pODmR4.brrxz.cn
http://ZhB2kssG.brrxz.cn
http://0mVH9TLb.brrxz.cn
http://iAsxKDm1.brrxz.cn
http://ghr5HRgG.brrxz.cn
http://sjXCxenx.brrxz.cn
http://dIFhkWDR.brrxz.cn
http://hATS6zjB.brrxz.cn
http://AbvFBdWW.brrxz.cn
http://z22V0Rmo.brrxz.cn
http://1PklljCE.brrxz.cn
http://ISycNaWt.brrxz.cn
http://KKUxcJBQ.brrxz.cn
http://DwiIkdKb.brrxz.cn
http://AooGELZ9.brrxz.cn
http://uX4DHxfq.brrxz.cn
http://jt20HQE2.brrxz.cn
http://nutoKL0N.brrxz.cn
http://www.dtcms.com/a/245497.html

相关文章:

  • FastDFS分布式存储
  • web3 资讯网址
  • Web 架构之 Kubernetes 弹性伸缩策略设计
  • 如何将 iPhone 中的短信导出为 PDF
  • C/C++ 面试复习笔记(6)
  • 一[3]、ubuntu18.04环境 利用 yolov8 训练开源列车数据集,并实现列车轨道检测
  • Java基于SpringBoot的牙科诊所管理系统,附源码+文档说明
  • Springboot实现Java程序和线程池的优雅关闭
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 1. 摄像机几何
  • Oracle DG库手动注册归档日志的两种方法
  • 【报错解决】RTX4090 nvrtc: error: invalid value for --gpu-architecture (-arch)
  • Android 手机操作系统的14个常见问题以及解决办法
  • PostgreSQL认证怎么选?PGCP中级认证、PGCM高级认证
  • Git 常用总结
  • 【Net】TCP/IP 协议
  • 《性能之巅》第十章 网络
  • 机器学习与深度学习20-数学优化
  • 如何彻底解决缓存击穿、缓存穿透、缓存雪崩
  • @Validation 的使用 Spring
  • LeetCode--29.两数相除
  • 【慧游鲁博】【13】后端 · 文物图片识别功能完善 · 个性化文物介绍
  • 火线、零线、地线 基础知识
  • Actix-web 中的权限中间件实现
  • 智慧养老与数字健康:科技赋能老年生活,构建全方位养老体系
  • 高防IP是怎么防御的?高防IP的防御步骤又有哪些?
  • 发布5大AI课程体系,传智教育破局AI开发人才荒
  • GitHub 趋势日报 (2025年06月11日)
  • 在MATLAB命令行执行ros2node 和 ros2subscriber后,执行ros2 topic list,MATLAB卡死
  • preload、preconnect、prefetch 的作用
  • 【Java多线程从青铜到王者】阻塞队列(十)