• 通过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中,都可以轻松拿到。

    作者:学辉

    -------------------------------------------

    个性签名: 没有好看的皮囊,但有有趣的灵魂,技术没有止境!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    玩游戏怎么能没有皮肤,Python一键采集王某耀游戏所有皮肤,这波就很舒服
    最近办公室每天都会少点东西,我用Python直接控制摄像头拍照发到邮箱,最后发现...
    23个适合Python初学者练手的小脚本,学会技术嘎嘎增长!
    π的值该怎么求?
    ItextSharp.text.pdf
    改画册相关注意事项
    装饰者模式
    策略模式
    简单工厂模式
    代理模式
  • 原文地址:https://www.cnblogs.com/XH-jing/p/13603921.html
Copyright © 2020-2023  润新知