2013-02-18 105 views
4

我的目标是建立一个基于Wordpress的移动网站(用于手机和平板电脑)和响应式桌面网站。我想要最简单的方法来实现防呆设备检测。检测手机或平板设备

移动网站将拥有许多功能,这些功能只会真正惠及触控设备,并将为手机和平板电脑定制设计。桌面版网站将会完全不同(使用相同的页面但带有额外的内容),并且只有在任何设备漏过检测时才会完全响应。

我有这一个班轮,将检测触摸设备,并重定向到另一个页面,但它似乎太简单,不能成为设备检测的傻瓜证明方法。这有多愚蠢的证据?它适用于Windows和Android设备以及iOS吗?

这是我第一次做这样一个网站,不知道效果如何这将是:

<!-- Redirect to the mobile index page if we're on a touch device --> 
<script>if('ontouchstart' in window) window.location = 'mobile.html';</script> 

回答

0

该代码会工作得很好,几乎任何设备是触摸启用。

1

可以使用mdetect(移动检测)库来为你做这个。它用几种语言编写,并会检测Windows,Android,iOS等。请确保您阅读文档。

,请注意该JavaScript版本包含了这样的警告:

// WARNING: 
// These JavaScript-based device detection features may ONLY work 
// for the newest generation of smartphones, such as the iPhone, 
// Android and Palm WebOS devices. 
// These device detection features may NOT work for older smartphones 
// which had poor support for JavaScript, including 
// older BlackBerry, PalmOS, and Windows Mobile devices. 
// Additionally, because JavaScript support is extremely poor among 
// 'feature phones', these features may not work at all on such devices. 
// For better results, consider using a server-based version of this code, 
// such as Java, APS.NET, PHP, or Ruby. 
1

对于移动侦测的PHP我总是使用$ _ SERVER [ 'HTTP_USER_AGENT' ]变量。 我使用下面的功能对移动站点(我想支持的特定设备)的获取者进行非常精细的控制。只需在阵列中添加useragents(如'Ipad')即可添加其他设备。

function detectmobile(){ 
    $agent = $_SERVER['HTTP_USER_AGENT']; 
    $useragents = array (
     "iPhone", 
     "iPod", 
     "Android", 
     "blackberry9500", 
     "blackberry9530", 
     "blackberry9520", 
     "blackberry9550", 
     "blackberry9800", 
     "webOS" 
     ); 
     $result = false; 
    foreach ($useragents as $useragent) { 
    if (preg_match("/".$useragent."/i",$agent)){ 
      $result = true; 
     } 
    } 
return $result; 
} 
if (detectmobile() == true) { wp_redirect('http://pageyouwwanttoredirectto'); } 

用法:你可以将上面的代码添加到你的wordpress主题的functions.php文件中。

相关问题