关于javascript:检测是否在手机上运行

Detect if running on phone

本问题已经有最佳答案,请猛点这里访问。

我在网上找到了很多关于如何检测用户是否在移动设备中导航的资源,但是我需要特别检查他们是否在使用电话,这样我就可以使用href="tel:"或者我应该将他们重定向到另一个页面。在我的桌面浏览器中,打电话号码的链接行为很糟糕:一个错误页面显示地址不被理解。那么,如何检测用户是否使用可以拨打电话的电话?谢谢


几乎不可能检测出用户是否在使用"真正的电话"。但是,根据它是否是真正的电话的重要性,有多种可能的解决方案。

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

另一种方法是检查用户的屏幕大小,并根据大小隐藏或显示相关链接。这可以通过使用CSS来完成,只在需要的时候使用(媒体查询),当然也可以使用JavaScript来完成。

如果您使用包管理器(npmyarn等),您可以检查mobile-detect包,其中有很多包,要么使用一个包,要么检查它们是如何做到的,您应该找到很多好的资源!


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

基本上,您只需检查客户端的用户代理,如果它看起来像一个移动用户代理,其内容如下:

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

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