网站自动识别使用设备

news/2024/9/20 18:42:07 标签: javascript, 开发语言, 适配器模式

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

解决方案

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

例子

javascript"><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.通过检测屏幕宽度来判断

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

屏幕宽度: 1396

 具体解决

javascript">// 检测是否为移动设备
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()
}

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

javascript">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就可以判断是用什么访问了都可以实现,不过需要后端同学,帮一下忙了


http://www.niftyadmin.cn/n/5667500.html

相关文章

景区公共厕所污水处理设备特点

诸城市鑫淼环保小编带大家了解一下景区公共厕所污水处理设备特点 占地面积小&#xff1a;采用模块化、一体化设计&#xff0c;适合景区等空间有限的场所。 处理效率高&#xff1a;采用先进的生物处理技术&#xff0c;能够高xiao地去除污水中的有机物和异味&#xff0c;出水水质…

项目实战bug修复

实操bug修复记录 左侧侧边栏切换&#xff0c;再次切换侧边栏&#xff0c;右侧未从顶部初始位置展示。地图定位展示&#xff0c;可跳转到设置的对应位置。一个页面多个el-dialog弹出框导致渲染层级出现问题。锚点滚动定位错位问题。动态类名绑定。 左侧侧边栏切换&#xff0c;再…

【Node.js Vue】还在为选什么乐器发愁?乐器推荐系统帮你解决难题,基于用户行为分析的智能推荐,让你不再为音乐器材烦恼

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

《计算机网络名词解释》

1.计算机网络 计算机网络就是指&#xff0c;将分布在不同地理位置、具有独立功能旳多台计算机及其外部设备&#xff0c;用通信设备和通信线路连接起来&#xff0c;在网络操作系统和通信合同及网络管理软件旳管理协调下&#xff0c;实现资源共享、信息传递旳系统。 2.通信链路…

最清晰 | 自学前端之js

怎么在vscode中运行网页代码 1、在vscode中安装插件“ open PHP/HTML/JS ” 2、在代码区域,右键点击” open PHP/HTML/JS in browser " 一、js概念 1、是什么: (1)运行在客户端(浏览器) (2)一种编程语言(脚本语言) (3)实现人机交互 2、做什么: (1)网页…

zabbix“专家坐诊”第256期问答

原作者&#xff1a;乐维社区 原文链接&#xff1a;https://forum.lwops.cn/questions 问题一 Q&#xff1a;zabbix 6.4.18版本的&#xff0c;使用zabbix_agentd2监控mysql数据库&#xff0c;只能在界面配置mysql的相关信息吗&#xff1f;这个在zabbix表里面是明文存储的&#x…

python win11 编程 实现:读取指定文件夹下所有word文档,然后依次把文档里面的文本返回【zhilu.space】

from pathlib import Path from docx import Document import logging from concurrent.futures import ThreadPoolExecutor 设置日志 logging.basicConfig(level=logging.INFO, format=‘%(asctime)s - %(levelname)s - %(message)s’) def read_docx(file_path): doc = Do…

案例精选 | 聚铭助力河北省某市公安局筑牢网络安全防护屏障

近年来&#xff0c;各级公安机关积极响应信息化发展趋势&#xff0c;致力于提升公安工作的效能与核心战斗力。河北省某市公安局作为主管全市公安工作的市政府部门&#xff0c;承担着打击违法犯罪、维护社会稳定的重任。随着信息化建设的推进&#xff0c;局内系统数量、种类及数…