使用 Javascript 或 JQuery 检测手机
Detect Mobile PHONE with Javascript or JQuery
我对平板电脑或移动设备不感兴趣。仅当用户使用手机访问页面时。
我不是在寻找100%完美的东西。但最好的努力会很好。如果我显示短信"a"标签链接而您不在手机上......这不是世界末日,但我想尽我所能。
关于如何专门尝试过滤手机的任何想法,即使它不是 100% 完美?
谢谢
也许你可以采取几种方法 - 两者都会做出大量的假设,充其量是不可靠的!
第一种方法是响应式媒体查询。您可以假设移动电话的屏幕尺寸大于 x 且小于 y。例如:
@media only screen and (min-width: 320px) and (max-width: 600px) {}
我会对此进行改进,以检查高度,并找到一些有关常见设备尺寸的统计数据,以便在其中放置合理的断点。您还需要考虑设备方向,当设备面向横向时,它将比平时更宽。
另一个选项是使用用户代理字符串。苹果和安卓设备都特别声明了它是否是该设备的移动版本。在iOS上,您可以查找短语" iphone"。在安卓上,你可以寻找"移动野生动物园"。Windows Phone 和其他设备可能有类似的检测,您需要使用模拟器来检查每个 UA 字符串,然后构造合适的正则表达式。
如果您特别关注设备处理电话操作的能力,最后一种可能性可能是针对电话号码运行检测。
在页面上创建一个包含电话号码的元素。在 iOS 中(在其他平台上可能类似),这将被修改,以便它添加一个自动 href 和 tel: 然后是您的号码。您可以在屏幕上绘制此元素,查看号码是否自动格式化,如果是,则假定为手机。我想iPad也会这样做,但是如果您启用了短信转发,iPad也将允许您发送短信。
如果您想为最终用户操作视图,我建议您在服务器端执行此操作,但是我编写了一个小型JS库,该库不久前可以实现这种检查 - 看看:https://github.com/dj10dj100/what_browser
除了其他事情,您还可以使用 js 检查浏览器是否是移动设备: if(what.device.isMobile() == true){
//Mobile device
}
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
// some code..
}
- 正在检测html5手机中的抖动
- 正在检测智能手机浏览器上的悬停或鼠标悬停
- 如何使用javascript来检测GPS和手机开/关的WIFI
- 安卓手机浏览器检测
- 使用 Javascript 或 JQuery 检测手机
- 智能手机:如何检测用户离开浏览器
- 如何使用php检测安卓手机
- 通过JavaScript检测和区分Android平板电脑和Android手机
- 为什么手机用jQuery('body').width()检测疯狂的宽度;
- jQuery手机内点击检测按钮可折叠
- 做window.chrome检测手机chrome
- Phonegap检测手机是否处于活动状态
- 如何检测手机或移动设备
- 如何检测手机背面的窃听
- 检测手机、平板电脑和桌面Javascript
- 使用JavaScript检测手机屏幕宽度的最佳方法是什么?
- 最简单的方式在浏览器中检测手机
- 浏览器检测-使用javascript检测手机/平板电脑/web客户端
- 如何使用javascript在浏览器中检测手机事件
- 检测手机浏览器的hide/leave事件