【js判断移动端和pc端】【js判断是否是ipad(兼容ios13)】


前言

在前端代码中,经常需要判断设备的类型,再来展示相对应的页面。也就是分为移动端和PC端。
js中可以使用navigator.userAgent来输出当前设备的详细信息。


一、navigator是什么?

navigator是js的一个对象,用于提供当前浏览器及操作系统等信息,这些信息都放在navigator的各个属性中。navigator对象也是window对象的成员。

JavaScript navigator 对象中存储了与浏览器相关的信息,例如名称、版本等,我们可以通过 window 对象的 navigator 属性(即 window.navigator)来引用 navigator 对象,并通过它来获取浏览器的基本信息。

在控制台输出,如下图:
在这里插入图片描述
属性如下:

appCodeName 获取浏览器的内部代码名。
appMinorVersion 获取浏览器的辅版本号,常用于浏览器的补丁货服务包。
appName 获取浏览器的名称。
appVersion 获取浏览器的平台和版本信息。
language 获取当前浏览器的语言,例如,可能的一个结果是“zh-CN”。
userAgent 返回浏览器的厂商和版本信息,即浏览器运行的操作系统、浏览器的版本、名称
cookieEnabled 获取浏览器中是否启用 cookie 的布尔值。
oscpu 获取计算机系统的 CPU 型号,例如,Inter通常得到的结果是x86。
onLine 获取浏览器是否连接互联网,结果是布尔值。
platform 获取运行浏览器的操作系统平台。
mimeTypes 获取浏览器支持的所有的MIME类型的数组。
plugins 获取安装在浏览器上的所有插件的数组。
product 获取浏览器的产品名,例如,可能的结果是Gecko。
productSub 获取浏览器产品的更多信息,例如,可能的结果是20030107。
vendor 获取浏览器的厂商名称,例如,可能的结果是Google Inc.。
vendorSub 获取浏览器的厂商更多信息。

二、使用userAgent判断当前的设备型号,区分移动还是pc

1、判断ipad

代码如下(示例):

function isIpadFun() {
  var ua = window.navigator.userAgent
  var IsIPad = false
  if (/ipad/i.test(ua)) {
    IsIPad = true
  }
  // iPad from IOS13
  var macApp = ua.match(/Macintosh/i) != null
  if (macApp) {
    // need to distinguish between Macbook and iPad
    var canvas = document.createElement('canvas')
    if (canvas != null) {
      var context =
        canvas.getContext('webgl') || canvas.getContext('experimental-webgl')
      if (context) {
        var info = context.getExtension('WEBGL_debug_renderer_info')
        if (info) {
          var renderer = context.getParameter(info.UNMASKED_RENDERER_WEBGL)
          if (renderer.indexOf('Apple') != -1) IsIPad = true
        }
      }
    }
  }
  return IsIPad;
}

2.判断移动

代码如下(示例):

function isMobileDevice() {
  return navigator.userAgent.match(
    /Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i
  );
}

3、判断pc

if (isMobileDevice() || isIpadFun()) {
	// 是移动端
} else {
    // 是pc端
}

4、mac电脑会被判断成ipad

新的判断是piad的方法,并且mac不会被判断成ipad,判断是否可以触摸

let isiPad = (navigator.userAgent.match(/(iPad)/) || (navigator.userAgent.match(/(Macintosh)/) && navigator.maxTouchPoints >= 1));

总结

那么,JS怎样判断设备型号,怎样区分移动端还是PC端的方法就总结到这里,如果有什么不足,感谢各位朋友帮我补充!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值