检测是不是在手机上运行[重复]
Posted
技术标签:
【中文标题】检测是不是在手机上运行[重复]【英文标题】:Detect if running on phone [duplicate]检测是否在手机上运行[重复] 【发布时间】:2019-04-09 04:14:49 【问题描述】:我在网上找到了很多关于如何检测用户是否正在通过移动设备导航的资源,但我需要特别检查他们是否正在使用手机,以便我可以使用 href="tel:" 或者我应该将它们重定向到另一个页面。在我的桌面浏览器中,呼叫电话号码的链接表现得很糟糕:一个错误页面显示地址不被理解。 那么如何检测用户是否正在使用可以拨打电话的电话呢? 谢谢
【问题讨论】:
这似乎是错误的。你应该一直输出tel:
。如果您的浏览器表现不佳,则可能是异常值。我怀疑大多数桌面浏览器都能很好地处理它们。例如,我会觉得你的提议很烦人,我希望可以在桌面上点击电话号码,以便在配对的手机上自动拨打电话。
如果你对 jQuery 解决方案感兴趣,也可以***.com/questions/3514784/…。
【参考方案1】:
我不知道这是否是最好的选择,但我已经看过很多次了。
基本上,您只需检查客户端的用户代理是否看起来像一个移动用户代理,例如:
/android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
如果客户端在移动设备上,此 sn-p 将返回 true
。
【讨论】:
【参考方案2】:检测用户是否使用“真实手机”几乎是不可能的。但取决于它是否是一部真正的手机的重要性,可能的解决方案不止一种。
检查用户的用户代理是最常见的,也可能是最“安全”的,因为它要么意味着用户正在使用手机,要么使用的是模仿手机的浏览器。网上有很多关于如何做到这一点的指南。
另一种方法是检查用户的屏幕尺寸,并根据尺寸隐藏或显示相关链接。这可以通过仅在需要时使用 CSS 来完成 - 使用媒体查询 - 当然也可以使用 javascript 来完成。
如果您使用包管理器(npm
、yarn
等),您可以检查 mobile-detect
包,其中有很多,要么使用一个,要么检查他们是如何做到的,你应该会找到很多好资源!
【讨论】:
以上是关于检测是不是在手机上运行[重复]的主要内容,如果未能解决你的问题,请参考以下文章