【问题标题】:Detecting mobile or tablet device检测移动或平板设备
【发布时间】:2013-02-02 20:55:43
【问题描述】:

我的目标是建立一个基于 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>

【问题讨论】:

    标签: javascript wordpress device detection


    【解决方案1】:

    该代码几乎适用于任何支持触控的设备。

    【讨论】:

      【解决方案2】:

      您可以使用 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.
      

      【讨论】:

        【解决方案3】:

        对于 PHP 上的移动检测,我一直使用 $_SERVER['HTTP_USER_AGENT'] 变量。 我使用下面的函数来非常精细地控制谁获得了移动网站(我想要支持的特定设备)。只需将用户代理添加到阵列(例如“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文件中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-28
          • 1970-01-01
          • 1970-01-01
          • 2010-09-06
          • 1970-01-01
          • 2010-11-20
          • 2021-04-14
          相关资源
          最近更新 更多