美文网首页
判断是否为移动端

判断是否为移动端

作者: 萤火kin | 来源:发表于2021-12-08 09:40 被阅读0次

判断是否为移动端

1、使用is-mobile依赖

  • 先安装is-mobile依赖
"dependencies": {
    "is-mobile": "^2.2.1",
  },
  • 在页面中引入is-mobile使用即可。可以在router文件中通过路由守卫判断跳转PC页面还是h5页面
import mobile from 'is-mobile'
export default [
  {
    path: '/account',
    name: 'account',
    component: Layout,
    redirect: '/account/web/personal/personal-info'
  },
  {
    path: '/account/web/personal/personal-info',
    name: 'personalAccount',
    component: () => import('@/views/account/web/personal/PersonalInfo'),
    meta: {
      accountInfo: true
    },
    beforeEnter: (to, from, next) => {
      if (store.state.account.tenantType === 'PERSON') {
        mobile() ? next({ name: 'mobileAccount' }) : next()
      } else {
        mobile()
          ? next({ name: 'mobileAccount' })
          : next({
              name: 'companyCompanyAccount'
            })
      }
    }
  },
}

2、利用util的方法判断

  • 在util中添加hasMobile方法
//  判断是否为移动端
export function hasMobile () {
    let isMobile = false;
    if((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
        // console.log('移动端');
        isMobile = true;
    }
    if (document.body.clientWidth < 800) {
        isMobile = true;
    }
    return isMobile
}
  • 在vuex文件src/store/ module/app.js中添加hasMobile属性
import {
    hasMobile
} from '@/libs/util';
export default {
    state: {
        hasMobile: hasMobile(),
    },
    mutations: {
        setMobile (state, hasMobile) {
            state.hasMobile = hasMobile
        },
    },
}

  • 在组件src/components/main.js文件中设置hasMobile
import { hasMobile } from '@/libs/util'

mounted () {
         // 浏览器的窗口发生改变时,才会触发resize函数)
        window.addEventListener('resize', debounce(() => {
            this.$store.commit('setMobile', hasMobile());
        }));
    }
  • 使用的时候根据this.$store.state.app.hasMobile的值判断是否为移动端即可
  • 公共样式可以通过媒体查询判断
@media screen and (min-width: 800px) {

}

相关文章

网友评论

      本文标题:判断是否为移动端

      本文链接:https://www.haomeiwen.com/subject/xiozxrtx.html