3

我正在开发一个响应式网站,当用户在移动设备上浏览时,我被要求将我们网站上的任何免费电话号码交换为固定电话号码。使用 Modernizr 库(或任何其他库)检测用户是否在移动设备上的最可靠方法是什么?

我知道 Modernizr.touch 和 Modernizr.geolocation。当两者结合在一个if(Modernizr.touch && Modernizr.geolocation)声明中时,它们可以很好地指示您是否在移动设备上,但是 iPad 将使这两个属性都成立。我不愿意测试设备尺寸,因为移动设备越来越大!

有没有人解决过这个问题?

4

3 回答 3

3

通过使用 Modernizr API 方法Modernizr.mq(str)

例子:

Modernizr.mq('only all and (max-width: 400px)')
于 2012-09-06T11:38:07.723 回答
2

我在我的网站上使用这个 PHP 库:http ://code.google.com/p/php-mobile-detect/

我推荐这个而不是 JavaScript 库,因为这意味着在移动设备上要做的处理更少,而且你的网页代码更干净,没有针对多个设备的条件语句。

需要注意的是(如果您想这样称呼它)是您有两个版本的网站需要维护。我自己并不认为这是一个问题,尽管当权衡使用条件语句来决定要显示哪些内容的网页时。我的根目录中有一个桌面文件夹和一个移动文件夹。

我只是使用该isMobile方法并忽略其余大部分内容,但如果您愿意,它可用于过滤和定位特定设备类型。

例如用法:

 // 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 可能是更好的解决方案。这个答案可能更适合那些希望开发一个适合移动设备的整个网站的人。

于 2012-09-06T11:45:14.320 回答
1

正在寻找类似的东西,只是尝试了一下,乍一看似乎效果很好。

http://detectmobilebrowsers.com/

于 2013-04-16T23:05:10.817 回答