【问题标题】:How to determine if the device is Mobile or Desktop?如何确定设备是移动设备还是桌面设备?
【发布时间】:2015-07-15 18:05:34
【问题描述】:

我阅读了很多文章并寻找检测移动设备的解决方案。实际上遇到了https://github.com/serbanghita/mobile-detect,但它是一个相当庞大的 php 类。

我实际上想要一个非常简单的解决方案。我想确定用户的浏览器是 Mobile/iPad/etc OR Desktop。所以我想要这样的东西:

<?php

require('detector.php');

if(isMobile() === true)
{
   header('mobile.php');
   exit();
}
else
{
   header('desktop.php');
   exit();
}

?>

需要一个非常简单的解决方案,我无需安装 composer 或任何 php 框架即可放置到任何页面。

这怎么可能?

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。
  • 根据屏幕尺寸来做

标签: php mobile desktop


【解决方案1】:

您是否真的尝试过使用您发现的项目。我会说服务器端移动检测是一项艰巨的任务,需要进行大量详细检查以确保正确的结果。

而且使用这个类非常简单。从示例目录:

require_once '../Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

现在您有了一个具有以下三个值之一的变量:“平板电脑”、“手机”或“计算机”,您可以对此做出反应。

请注意,即使您可以在没有 Composer 的情况下使用此库,它也会定期更新(如“每月一次”),因为新设备上市并需要检测。您将不得不在某个时候更新此库。使用 Composer 让这一切变得非常简单。

【讨论】:

  • 非常感谢。没想到这个类这么好用!感谢您的意见!
  • 当我点击谷歌浏览器中的桌面站点复选框时它不起作用
【解决方案2】:

如果您真的不想将该类包含到您的代码中,Mozilla indicates that it is "good enough" to search for the string "mobi" in the user agent

<?php
if (stristr($_SERVER['HTTP_USER_AGENT'],'mobi')!==FALSE) {
    echo 'mobile device detected';
}
?>

【讨论】:

    【解决方案3】:

    您可以使用
    重定向链接 在控制器中,您可以检查

    $keybord = app::get('keyboard')
    if($keyboard == mobile ){
        redirect ('mobile');
    }else{
       redirect ('desktop');
    }   
    

    【讨论】:

      【解决方案4】:

      我发现这条简单的线路非常可靠且易于实现.. 无需添加一个额外的类。

      if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) {
         echo "running on mobile";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-17
        • 2021-01-09
        • 2021-01-26
        • 1970-01-01
        • 1970-01-01
        • 2017-04-04
        • 1970-01-01
        相关资源
        最近更新 更多