VUE识别访问设备是移动端还是pc端

一、思路

有些网站需要区分手机端网页和pc端网页,做到不同设备访问不同的网页,增强用户的使用体验,可以在app.vue中作一个判断(navigator.userAgent),然后跳转不同的路由。

二、原理

navigator.userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。

例如:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36

然后通过match函数判断是否有包含相应移动端设备名称,从而实现区分两者。

浏览器代号: navigator.appCodeName

浏览器名称: navigator.appName

浏览器版本: navigator.appVersion

启用Cookies: navigator.cookieEnabled

硬件平台: navigator.platform

用户代理: navigator.userAgent

用户代理语言: navigator.language

三、步骤

1,先在router/index.js文件中配置好不同端口跳转的路由:

javascript 复制代码
export default new Router({
  routes: [
    {
      path: '',
      redirect: '/pc_index'
    },
    {
      path: "/pc_index", // pc端首页
      name: PcIndex,
      component: PcIndex
    },
    {
      path: '/mb_index', // 移动端首页
      name: MbIndex,
      component: MbIndex
    }
  ]
});

2,在App.vue中做出判断,并跳转路由即可:

javascript 复制代码
 mounted () {
    // 根据不同路由跳转不同页面
    if (this._isMobile()) {
      console.log('手机端')
      this.$router.replace('/mb_index')
    } else {
      console.log('pc端')
      this.$router.replace('/pc_index')
    }
  },
  methods: {
    // 判断是否是手机端,如果是,返回true
    _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
    }
  }

四、结果

相关推荐
毕设十刻7 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
王同学要变强11 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
程序定小飞11 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
武昌库里写JAVA11 小时前
element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
java·vue.js·spring boot·sql·学习
不会算法的小灰12 小时前
Vue.js 基础教程:从入门到实践
前端·javascript·vue.js
拉不动的猪13 小时前
浏览器&Websocket&热更新
前端·javascript·vue.js
那些免费的砖13 小时前
Reka UI - 一款免费开源的 Vue 无头 UI 组件库,样式定制开发项目的绝佳选择
vue.js·ui·开源
前端付豪14 小时前
Vue 中的 JSX:让组件渲染更灵活的正确方式
前端·javascript·vue.js
apollo_qwe14 小时前
Vue 权限控制神技!自定义 auth 指令优雅实现按钮级权限管理
vue.js·架构
阿登林15 小时前
Vue面试项目经验分享:如何专业展示技术能力与解决问题
vue.js·经验分享·面试