Javascript 检测是否在手机上运行

Javascript 检测是否在手机上运行,javascript,html,css,Javascript,Html,Css,我在网上找到了很多关于如何检测用户是否在移动设备上导航的资源,但我需要特别检查他们是否在使用手机,以便我可以使用href=“tel:”或者我应该将他们重定向到另一个页面。在我的桌面浏览器中,呼叫电话号码的链接表现得很糟糕:一个错误页面显示地址不清楚。 那么,如何检测用户是否正在使用可以拨打电话的手机呢? 谢谢我不知道这是否是最好的选择,但我已经看过多次了 基本上,您只需检查客户端的用户代理,如果它看起来像一个移动用户代理,具有以下特征: /Android|webOS|iPhone|iPad|iP

我在网上找到了很多关于如何检测用户是否在移动设备上导航的资源,但我需要特别检查他们是否在使用手机,以便我可以使用href=“tel:”或者我应该将他们重定向到另一个页面。在我的桌面浏览器中,呼叫电话号码的链接表现得很糟糕:一个错误页面显示地址不清楚。 那么,如何检测用户是否正在使用可以拨打电话的手机呢?
谢谢

我不知道这是否是最好的选择,但我已经看过多次了

基本上,您只需检查客户端的用户代理,如果它看起来像一个移动用户代理,具有以下特征:

/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)

如果客户端在移动设备上,此代码段将返回
true

几乎无法检测用户是否在使用“真实电话”。但根据它是否是真手机的重要性,有多种可能的解决方案

检查用户代理是最常见的,可能也是最“安全”的,因为它要么意味着用户在电话上,要么使用模仿电话的浏览器。在网上有很多关于如何做到这一点的指南

另一种方法是检查用户的屏幕大小,并根据大小隐藏或显示相关链接。这可以通过使用CSS来完成,如果你愿意的话-通过媒体查询-当然也可以通过JavaScript来完成


如果您使用软件包管理器(
npm
warn
等),您可以检查
mobile detect
软件包,它们有很多,可以使用一个,也可以检查它们是如何完成的,您应该会找到很多好的资源

这似乎是错误的。您应该一直只输出
tel:
。如果您的浏览器表现不佳,则可能是异常值。我怀疑大多数桌面浏览器都能很好地处理它们。例如,我会觉得你的建议很烦人,我希望桌面上的电话号码可以点击,自动在我配对的手机上启动电话。如果你对jQuery解决方案感兴趣,也可以。