欢迎来到学辉的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

通过JS来判断打开的浏览器页面是PC端还是移动端或者是其他形式(navigator.userAgent)

在进行渠道管理时,由于要在各种不同端(包括任何形式的pc端、移动端、app、Android/IOS、小程序等)中内嵌h5页面来展示不同的内容,且具有良好的兼容性。使用navigator.userAgent 可以实现该功能,且在所有浏览器都支持。

原文链接:https://blog.csdn.net/XH_jing/article/details/108355386

一句就可以判断是什么端

1 window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) 
2 ? "mobile_web端页面" : "PC端页面"
3 // 通过正则来判断
4 // 如果是手机端跳转到 mobile_web端页面
5 // 如果是PC端跳转到  PC端页面

 

一.navigator.userAgent: 浏览器用于 HTTP 请求的用户代理头的值,通过UserAgent可以取得浏览器类别、版本,客户端操作系统等信息。

  • 在PC端打开 ,navigator.userAgent 显示如下
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
  • 在手机web端打开 ,navigator.userAgent显示如下
Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1

  

二.navigator.userAgent应用场景

1. 判断页面是在手机端还是PC端打开
1 <script>
2   console.log(navigator.userAgent);
3   window.location.href=/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)?"http://localhost:8888/mobile_web":"http://localhost:8888/PC";
4 </script>

 

2. 判断页面是在手机端,平板端还是PC端打开
 1 <script>
 2   console.log(navigator.userAgent);
 3   var os = function (){
 4     var ua = navigator.userAgent,
 5     isWindowsPhone = /(?:Windows Phone)/.test(ua),
 6     isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
 7     isAndroid = /(?:Android)/.test(ua),
 8     isFireFox = /(?:Firefox)/.test(ua),
 9     isChrome = /(?:Chrome|CriOS)/.test(ua),
10     isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
11     isPhone = /(?:iPhone)/.test(ua) && !isTablet,
12     isPc = !isPhone && !isAndroid && !isSymbian;
13     return {
14         isTablet: isTablet,
15         isPhone: isPhone,
16         isAndroid: isAndroid,
17         isPc: isPc
18     };
19 }();
20 
21 if (os.isAndroid || os.isPhone) {
22   console.log("手机")
23 } else if (os.isTablet) {
24   console.log("平板")
25 } else if(os.isPc) {
26   console.log("电脑")
27 }
28 </script>

 

3. 获取操作系统类型,判断是Android或者IOS
 1 /**
 2   * 获取操作系统类型,
 3   * 0 Android
 4   * 1 iOS
 5   */
 6  function getOSType() {
 7      if (/(Android)/i.test(navigator.userAgent)) {
 8          return 0;
 9      } else if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
10          return 1;
11      } else {
12          return 2;
13      }
14  }

 

4. 判断当前环境是否是微信环境
1 function is_weixin(){
2       var ua = navigator.userAgent.toLowerCase();
3       if(ua.match(/MicroMessenger/i)=="micromessenger") {
4            return true;
5      } else {
6             return false;
7       }
8 }

 


到这里就可以轻松实现上面的问题,可以在不同端获取浏览器信息,以此来展示不同的页面内容。
当然,不管是在Vue中还是React中,都可以轻松拿到。

posted on 2020-09-02 20:16  只跟自己比  阅读(676)  评论(0编辑  收藏  举报

导航