pc后台自适应移动手机转到h5(正则表达式,检查当前访问设备是不是移动端。)

const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(

window.navigator.userAgent,

);

  1. 结尾的 i → 表示 忽略大小写
window.navigator.userAgent userAgent 是浏览器提供的字符串 里面包含 "这是什么设备/系统/浏览器" 浏览器的用户代理信息
  1. .test(userAgent) test 会判断:userAgent 字符串中是否包含正则里的关键字

在浏览器中,window.navigator 是一个内置对象,它包含:

  • 浏览器名称

  • 浏览器版本

  • 系统信息(iOS、Android、Windows...)

  • 是否是移动端

  • 是否支持某些功能(如定位、震动、剪贴板权限等)

可以理解成:

你想知道浏览器是谁,它都能告诉你。

(1)routes/basic.ts --- 在系统首页 Dashboard 路由做移动端跳转

✔ 你在 SYSTEM_ROUTE 里这样写:

项目访问 /dashboard

→ 如果是 移动端 :自动 redirect 重定向 到 /List(你的 H5 列表页)

→ 如果是 PC 端 :正常进入 /dashboard/statisticalAnalysis

复制代码
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
  window.navigator.userAgent,
);
const dashboard = isMobile ? '/List' : '/dashboard/statisticalAnalysis';

export const SYSTEM_ROUTE: AppRouteRecordRaw = {
  path: '/dashboard',
  name: 'Dashboard',
  component: LAYOUT,
  redirect: dashboard,
  meta: {
    orderNo: 10,
    icon: 'ion:grid-outline',
    title: t('首页'),
  },
};

2routes/basic.ts --- 登录页动态选择 H5 或 PC 登录组件

复制代码
const isMobile = ...;

const loginComponent = isMobile
  ? () => import('/@/views/sys/login/H5Login.vue')
  : () => import('/@/views/sys/login/Login.vue');

export const LoginRoute = {
  path: '/login',
  name: 'Login',
  component: loginComponent,
  meta: {
    title: t('登录页'),
  },
};
  • 手机端 → 使用 H5 登录页:H5Login.vue

  • PC 端 → 使用 PC 登录页:Login.vue

3permissionGuard.ts --- 在路由守卫 beforeEach 中直接放行移动端

  • 只要是移动端

    不拦截,不校验 token,不重定向,直接放行所有路由

  • 这是你为了 H5 页面能自己控制跳转而加的逻辑。

复制代码
  const isMobile = ...;

  router.beforeEach(async (to, from, next) => {
    // 如果是移动设备,直接放行
    if (isMobile) {
      next();
      return;
    }
    ...
  });

4)basicRoutes 注册了 H5 List 页面

  • /List 就是你写的 H5 列表页

  • 设为 ignoreAuth: true → 不需要 token 也可以访问

  • 因为移动端被你允许"router.beforeEach 直接放行",所以能自由进入

复制代码
  export const LoginListRoute = {
    path: '/List',
    name: 'List',
    component: () => import('/@/views/sys/loginList/loginList.vue'),
    meta: {
      title: t('履职列表'),
      ignoreAuth: true,
    },
  };

二、总结:全项目移动端跳转逻辑

文件 位置 你写的逻辑 作用
routes/basic.ts SYSTEM_ROUTE PC → dashboard,Mobile → /List 首页根据设备类型跳转
routes/basic.ts LoginRoute Mobile → H5Login.vue 登录页按端区分
routes/basic.ts LoginListRoute 注册 /List 路由 H5 列表页入口
permissionGuard.ts beforeEach isMobile 直接 next() 移动端不走权限验证
相关推荐
wjql213 小时前
手机远程控制电脑的方法 手机怎么连接电脑
智能手机·电脑
wulechun14 小时前
突破移动端调试瓶颈:深入解析remote_inspect_web_on_real_device真机远程调试神器及详细配置使用指南
智能手机
啦啦啦~~~22215 小时前
专为非小米笔记本电脑设计,小米手机互联服务通用版 新版分享,新增设备列表窗口删除设备功能
智能手机·电脑·开源软件
私人珍藏库15 小时前
[Android] 多开空间-一机多账号+应用一键克隆双开
android·人工智能·智能手机·软件
wulechun16 小时前
深度解析TelegramGroup开源自动化项目:从环境搭建、核心功能配置到群组高效管理与机器人实战部署指南
智能手机
明哥聊AI1 天前
【推理与部署篇16】边缘设备部署:从手机到浏览器的端侧大模型推理实践
智能手机
Digitally1 天前
5 种简易方法:摩托罗拉手机数据迁移至 iPhone 17
ios·智能手机·iphone
Axing21cn1 天前
手机租赁与监管机市场分析:监管机正在成为租赁行业的风控基础设施
智能手机·mdm·手机租赁·监管机·监管锁·苹果锁
wjql21 天前
手机远程控制手机的软件 手机互控工具推荐
智能手机
2601_962344621 天前
计算机毕业设计之基于大数据的手机销售数据对比分析系统
大数据·人工智能·深度学习·机器学习·智能手机·数据挖掘·课程设计