我正在开发一个响应式网站,当用户在移动设备上浏览时,我被要求将我们网站上的任何免费电话号码交换到固定电话号码。使用Modernizr库(或任何其他库)检测用户是否在移动设备上的最可靠方法是什么?
我知道Modernizr.touch和Modernizr.geolocation。当两者合并为if(Modernizr.touch && Modernizr.geolocation)
语句时,它们是您是否在移动设备上的良好指标,但iPad将使这两个属性成立。我不愿意测试设备尺寸,因为移动设备越来越大了!
以前有人解决过这个问题吗?
答案 0 :(得分:3)
答案 1 :(得分:2)
我在我的网站上使用这个PHP库:http://code.google.com/p/php-mobile-detect/
我建议在JavaScript库中使用它,因为这意味着在移动设备上执行的处理更少,并且如果没有针对多个设备的条件语句,您的网页代码会更加清晰。
警告(如果你想称之为)是你有两个版本的网站需要维护。我自己并没有把这看作是一个问题,尽管我在权衡维护带有条件语句的网页时决定要显示哪些内容。我的根目录中有一个桌面文件夹和一个移动文件夹。
我只是使用isMobile
方法并忽略其余大部分方法,但如果您愿意,可以使用它来过滤和定位特定的设备类型。
E.g。用法:
// Include the mobile detection file.
require('Mobile_Detect.php');
// Create new mobile detect object.
$detect = new Mobile_Detect();
// Create new browser object
$browser = new Browser();
// Check if the client is using a mobile device.
$mobile = $detect->isMobile();
...
if($mobile) {
//Load mobile site version
require('Mobile\\index.html');
} else {
//Load desktop site version
require('Desktop\\index.html');
}
在您的情况下,如果只是您想要更改的数字,JavaScript可能是更好的解决方案。这个答案可能更适合那些希望开发适合移动设备的整个网站的人。
答案 2 :(得分:1)
正在寻找类似的东西,只是尝试了这一点,乍一看似乎工作正常。
答案 3 :(得分:0)
我知道我参加派对的时间有点晚了,但正如你所说的那样,使用ASP,基于browscap.ini
的检查可以专门用于ASP。