资讯专栏INFORMATION COLUMN

Js项目中确定开发设备

BlackMass / 731人阅读

摘要:在开发项目中经常需要确定当前设备是什么,下面是小编的一下方法,供大家参考移动终端浏览器版本信息内核内核苹果谷歌内核火狐内核是否为移动终端终端终端或浏览器是否为或者浏览器是否是否应该程序,没有头部与底部判断是否是移动设备打

在开发项目中经常需要确定当前设备是什么,下面是小编的一下方法,供大家参考:
share1 () {

  let browser = {
    versions: (function () {
      let u = navigator.userAgent
      return {
        // 移动终端浏览器版本信息
        trident: u.indexOf("Trident") > -1, // IE内核
        presto: u.indexOf("Presto") > -1, // opera内核
        webKit: u.indexOf("AppleWebKit") > -1, // 苹果、谷歌内核
        gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") === -1, // 火狐内核
        mobile: !!u.match(/AppleWebKit.*Mobile.*/), // 是否为移动终端
        ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), // os终端
        android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1, // android终端或uc浏览器
        iPhone: u.indexOf("iPhone") > -1, // 是否为iPhone或者QQHD浏览器
        iPad: u.indexOf("iPad") > -1, // 是否iPad
        webApp: u.indexOf("Safari") === -1 // 是否web应该程序,没有头部与底部
      }
    })(),
    language: (navigator.browserLanguage || navigator.language).toLowerCase()
  }
  if (browser.versions.mobile) { // 判断是否是移动设备打开
    let ua = navigator.userAgent.toLowerCase()// 获取判断用的对象
    if (ua.match(/MicroMessenger/i) === "micromessenger") {
      // 在微信中打开
    }
    if (ua.match(/WeiBo/i) === "weibo") {
      // 在新浪微博客户端打开
    }
    if (ua.match(/QQ/i) === "qq") {
      // 在QQ空间打开
    }
    if (browser.versions.ios) {
      // 是否在IOS浏览器打开
    }
    if (browser.versions.android) {
      // 是否在安卓浏览器打开
    }
    this.show = !this.show
  } else {
    // 否则就是PC浏览器打开
  }
},

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98711.html

相关文章

  • Web前端开发流程

    摘要:页面开发由小组长创建前端目录,包含页面开发目录如及提取剥离目录如。提交验收当有阶段性产出后,小组长上报主管,安排经验丰富的前端工程师进行代码验收。 开发前准备 了解产品和设计 参加需求、交互、视觉会议,了解产品设计和项目成员。 了解产品面向的设备和平台。 了解产品对兼容性的要求以及是否采用响应式设计等。 提出疑问和见解 按需求结合现有技术,提出疑问和见解。 提出可能存在的问题(技...

    keithyau 评论0 收藏0
  • Web前端开发流程

    摘要:页面开发由小组长创建前端目录,包含页面开发目录如及提取剥离目录如。提交验收当有阶段性产出后,小组长上报主管,安排经验丰富的前端工程师进行代码验收。 开发前准备 了解产品和设计 参加需求、交互、视觉会议,了解产品设计和项目成员。 了解产品面向的设备和平台。 了解产品对兼容性的要求以及是否采用响应式设计等。 提出疑问和见解 按需求结合现有技术,提出疑问和见解。 提出可能存在的问题(技...

    fox_soyoung 评论0 收藏0
  • 基于 Netty 的可插拔业务通信协议的实现「1」协议描述及基本消息对象设计

    摘要:基本消息对象的设计消息对象的设计主要由两部分组成特定数据帧对应的特定消息对象。该类包含上节数据帧主帧及子帧的所有公共信息,仅仅未包含子帧中的数据体信息,该需求由基本消息对象的子类实现。 开发工程中,有一个常见的需求:服务端程序和多个客户端程序通过 TCP 协议进行通信,通信双方需通信的消息种类众多,并且客户端的数量可能有数万个。为此,双方需要约定尽可能丰富、灵活的数据帧「数据包」协议,...

    Barry_Ng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<