• VUE判断当前设备是PC还是移动端


    实际开发工作中会经常遇到一个需求,就是判断当前登录网页的设备是PC还是移动,要求PC端和移动端显示的是不同的网页内容。
    那么我们就需要对当前登录设备进行判断。

    使用 navigator.userAgent 字符串检测

    我是在PC端开发完接到要做移动端的需求,而且移动端只有一个页面,我就统一放在了一个文件夹内。
    首先在 app.vue 文件内,判断当前设备是pc端还是移动端。

    methods: {
      // 添加判断方法
      isMobile() {
        let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);
        return flag;
       }
    },
    mounted: {
      if(this.isMobile) {
        alert("移动端");
        this.$router.replace('/pc_index');
      }else {
        alert("pc端");
        this.$router.replace('/m_index');
      }
    }

    接下来就略微介绍一下这个方法,其中用到了 navigator.userAgent 。
    这个方法会返回一个只读的字符串,声明了浏览器在发送 http 请求时的用户代理头的值。例如:

    <script>
      document.write("用户代理:" + navigator.userAgent)
    </script>
    
    // pc端输出结果:
    用户代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
    // 移动端输出结果:
    用户代理: 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

    .match 方法用于在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,返回值是检索到的值。
    类似的方法还有 indexOf()、laseIndexOf(),但是这两个方法返回的是匹配到的值的位置。
    所以在判断方法中使用.match方法匹配所有的移动端型号,最后加的 /i 是表示不区分大小写。

    使用 window.matchMedia() 检测

    也就是利用媒体查询的方式进行判断。
    window.matchMedia 方法会返回一个新的 mediaQueryList 对象,表示指定的媒体查询字符串解析后的结果。例如:

    var result = window.matchMedia("(min- 400px)").matches;
    console.log(result)   //true
    window.matchMedia 方法会返回两个参数,一个是 media,就是查询的语句内容。另一个是 matches,是返回的结果,为 boolean 类型。
    根据当前设备的视口宽度判断是否是移动端设备。


    作者:是七吾
    链接:https://www.jianshu.com/p/182fe3b69071
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    bash 学习笔记5
    zookeeper启动脚本修改
    java enmu 使用说明
    bash 学习笔记4
    zookeep集群搭建说明
    bash 学习笔记3
    集群配置问题
    hadoop hdfs 总结(1)
    bash 学习笔记6
    bash pitfall
  • 原文地址:https://www.cnblogs.com/lguow/p/12706441.html
Copyright © 2020-2023  润新知