如何有效的判断手机端代理

本文探讨了在前端开发中,通过navigator.userAgent匹配手机型号来判断移动端的局限性,特别是对于一些新兴手机型号的不适用。作者提出改用document.documentElement.clientWidth来判断屏幕宽度,以实现类似响应式布局的解决方案,当屏幕宽度小于832px时视为移动端。这种方法虽然可能不适用于极少数大屏手机,但总体上能较好地适应大多数设备。
摘要由CSDN通过智能技术生成

mark一个遇到过的问题:

项目有个需求,需要根据不同的终端实现不同的效果展示。
网上大部分文章的分享:
const isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
但是使用之后发现一个弊端:
部分手机代理解析不了,比如vivo,oppa,荣耀v9等等,这样就有局限性,手机越来越百花齐放,不能遇到一个手机型号,针对一个手机型号来更改代理识别,同时除非你拥有测试机,否则你也不清楚新的手机型号对应的navigation.userAgent是多少,这样局限性非常大。

问题深思:

手机端有没有一个标识来统一识别,而不会出现不同型号代理不同。

思维转换:

其实区分手机和pc端,无非是因为尺寸不同,要达到的效果不同。针对尺寸这方面做考虑,判断语法修改:
const isMobile = document.documentElement.clientWidth < 832
类似于响应式布局的思路:
@media screen and (min-width: 320px) and (max-width: 823px)

结语:

我的解决方案适用于当前需求,有的人可能会说,现在手机屏幕越来越大,如果超过832px的话怎么办,在我看来,如果手机真的做到大于832px,视为pc操作也没啥问题,这类手机已经不应该再划分到移动端的范畴。当然,你是阻止不了老板或是产品经理有奇葩的想法,具体问题具体分析,如果有更好的解决方案也欢迎留言指导,毕竟我主职也非前端,在前端这条路也只是个自学的菜鸟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值