网站自动识别使用设备

现在有一个需求是,写了两组页面,进行渲染,一组是pc端,另外一组是移动端,要自动匹配当前设备进行渲染

解决方案

1.通过 navigator.userAgent来判断当前的设备

例子

<script>
  document.write("用户代理: " + navigator.userAgent);
</script>

 在IE打开

用户代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0

在谷歌打开

用户代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36

2.通过检测屏幕宽度来判断

<script>
  document.write("屏幕宽度: " + window.innerWidth);
</script>

屏幕宽度: 1396

 具体解决

// 检测是否为移动设备
function isMobileDevice() {
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}

// 检测屏幕宽度是否小于等于某个阈值(例如 768px)
function isMobileWidth() {
  return window.innerWidth <= 768;
}

export function isMobile() {
  return isMobileDevice() || isMobileWidth()
}

通过判断来决定请求不同的资源,来实现在不同的设备显示不同的页面

const QuestionAnswering = isMobile() ? () => import('@/h5/index.vue') : () => import('@/views/index.vue')
const ResourceCenter = isMobile() ? () => import('@/h5/View.vue') : () => import('@/views/View.vue')

当然还有一些别的方法,例如nginx上搞了一个detector,用于识别终端和设备类型。或者http协议的request headers中包含了user-agent这个key,获取这个key-value就可以判断是用什么访问了都可以实现,不过需要后端同学,帮一下忙了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值