资讯专栏INFORMATION COLUMN

判断iOS和Android及PC端

DrizzleX / 3234人阅读

摘要:在做移动端时,想起用来对浏览器类型进行判断,查了点资料,在这里总结下还有一个就是移动端的缩放问题,在标签中进行设置,对部分浏览器进行强制性的限制的一些常用属性为对象的一个属性,指向了一个包含浏览器相关信息的对象浏览器的版本号浏览器使用的语言

在做移动端时,想起用navigator.userAgent来对浏览器类型进行判断,查了点资料,在这里总结下
还有一个就是移动端的缩放问题,在meta标签中进行设置,对部分浏览器进行强制性的限制
1.navigator的一些常用属性

navigator为window对象的一个属性,指向了一个包含浏览器相关信息的对象

navigator.appVersion 浏览器的版本号 
navigator.language 浏览器使用的语言 
navigator.userAgent 浏览器的userAgent信息
其中userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。
2.较常见的ios端、Android端及PC端的判断

简单点的

/* 判断浏览器类型 */
let userAgent = navigator.userAgent;
/* 判断手机型号 */
let app = navigator.appVersion;
/* Android 终端 */
let isAndroid = userAgent.indexOf("Android");
/* ios终端 */
let isMac = !!userAgent.match(/(i[^;]+;( U;)? CPU.+Mac OS X/);

封装性的

/* 判断各类型方法 */
const browser = {
   version: function() {
       const userAgent = navigator.userAgent;
       return {
           /* 判断是否是ios */
           ios: !!userAgent.match(/(i[^;]+;( U;)? CPU.+Mac OS X/),
           /* 判断是否是Android */
           android: userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1,

           /* 判断是否是移动端 */
           mobilePhone: !!userAgent.match(/AppleWebKit.*Mobile.*/),

           /* IE内核 */
           trident: userAgent.indexOf("Trident") > -1,
           /* opera内核 */
           presto: userAgent.indexOf("Presto") > -1,
           /* 苹果、谷歌内核 */
           webkit: userAgent.indexOf("AppleWebKit") > -1,
           /* 火狐内核 */
           gecko: userAgent.indexOf("Gecko") > -1 && userAgent.indexOf("KHTML") == -1,


           /* 判断是否是IPone手机或者QQHD浏览器 */
           iphone: userAgent.indexOf("iPhone") > -1,
           /* 判断是否是iPad */
           iPad: userAgent.indexOf("iPad") > -1,

           /* 判断是否是web应用程序(能够让用户完成某些特定任务的网站),没有头部和底部 */
           webApp: userAgent.indexOf("Safari"),
           /* 是否是微信 */
           weixin: userAgent.indexOf("MicroMessenger"),
           /* QQ */
           QQ: userAgent.match(/sQQ/i) == " qq",
      }
   }(),
   /* 判断浏览器使用的语言:navigator.language除IE浏览器外的浏览器使用的语言, 
    * navigator.browserLanguageIE浏览器使用的语言 
    */
   browserLanguage: (navigator.language || navigator.browserLanguage).toLowerCase()
};
if(browser.version.ios || browser.version.android || browser.version.mobilePhone) {
  console.log("是移动端");
}
3.meta标签设置

如对浏览器进行强制全屏的设置(UC全屏),webapp模式等































正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯^_^)

往期好文推荐:

webpack打包(有面试题)

纯css实现瀑布流(multi-column多列及flex布局)

画三角形

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

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

相关文章

  • H5项目常见问题汇总解决方案

    摘要:解决方案可以解决在手机上点击事件的延迟的模块,事件也是为了解决在的延迟问题显示屏原理及设计方案说明屏是一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由个变为多个,如在同样带下的屏幕上,苹果设备的显示屏中,像素点个变为个。 原文链接 - https://github.com/FrontEndRo... H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备...

    marser 评论0 收藏0
  • H5项目常见问题注意事项

    摘要:解决方案可以解决在手机上点击事件的延迟的模块,事件也是为了解决在的延迟问题显示屏原理及设计方案说明屏是一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由个变为多个,如在同样带下的屏幕上,苹果设备的显示屏中,像素点个变为个。 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一、HTML页面结构 // width 设置viewport宽度,为一...

    honhon 评论0 收藏0
  • H5项目常见问题注意事项

    摘要:解决方案可以解决在手机上点击事件的延迟的模块,事件也是为了解决在的延迟问题显示屏原理及设计方案说明屏是一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由个变为多个,如在同样带下的屏幕上,苹果设备的显示屏中,像素点个变为个。 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一、HTML页面结构 // width 设置viewport宽度,为一...

    Little_XM 评论0 收藏0

发表评论

0条评论

DrizzleX

|高级讲师

TA的文章

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