7

我已经能够通过 CodeIgniter 检测到用户正在使用什么移动设备,但是我无法检测到当前移动设备正在运行什么操作系统。

假设有人正在使用运行在 Android 上的三星移动设备,而另一个人正在使用仍然是三星的普通 Java 移动操作系统。如何查看每个用户使用的操作系统?

4

6 回答 6

19

从http://mobiledetect.net下载库 将 Mobile_Detect.php 放入“库”

主控制器内部

public function index() {
    $this -> load -> library('Mobile_Detect');
    $detect = new Mobile_Detect();
    if ($detect->isMobile() || $detect->isTablet() || $detect->isAndroidOS()) {
        header("Location: ".$this->config->item('base_url')."/mobile"); exit;
    }
}

在https://dwij.net/mobile-os-detection-in-php-codeigniter/上查找文档

于 2013-05-31T14:43:54.890 回答
7

加载库。

$this->load->library('user_agent');

使用此功能检测是否移动

$mobile=$this->agent->is_mobile();
if($mobile){
  //your code
}
于 2016-12-15T12:19:05.573 回答
5

我从 phpexcel codeigniter 集成中借用/偷了这个加载类的方法。

从http://mobiledetect.net下载库,但将 Mobile_Detect.php 放在“第三方”中,然后在“库”中创建 MobileDetect.php 并将以下代码放入其中:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once APPPATH."third_party/Mobile_Detect.php";

class MobileDetect extends Mobile_Detect {
  public function __construct() {
    parent::__construct();
  }
}

现在您可以像这样在控制器中使用它:

$this->load->library('MobileDetect');
if ($this->mobiledetect->isMobile()) {
    //do something cool;
}

我确信还有其他(甚至更好)的方法可以将 mobiledetect 集成到 codeigniter 中,我只是想分享我的做法,希望对您有所帮助。

几点注意事项:

1)您不必使用存根文件 MobileDetect.php,如果您将 Mobile_Detect.php 直接放在“库”中,您仍然可以使用它,而$detect = new Mobile_Detect();无需调用如下所示的函数:$this->mobile_detect->isMobile()

2) 只要​​遵循 CodeIgniter 指南,存根文件类的名称可以是任何您想要的名称。因此,例如,您可以使用“MD”作为类名,然后使用$this->md->isMobile()

3)我建议在Mobile_Detect.phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');打开<?php后添加,防止直接访问类。

于 2014-09-24T00:59:43.033 回答
1

从https://github.com/serbanghita/Mobile-Detect下载库 将 Mobile_Detect.php 复制到 third_party 目录中 在 codeigniter 中创建一个帮助类 //此函数将返回用户代理手机或平板电脑或计算机

if(!function_exists('is_MTC')):
    function is_MTC()
    {
        require(APPPATH .'third_party/Mobile_Detect.php');
        $detect = new Mobile_Detect;
        return ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
    }
endif;

在视图中可以直接调用is_MTC函数并勾选user agent
//这会打印出user agent

<?php echo is_MTC(); ?>

要了解有关 codeigniter 助手功能的更多信息https://ellislab.com/codeigniter/user-guide/general/helpers.html

于 2015-08-13T07:04:18.610 回答
0

如果您使用会话类,则内置一个变量。user_agent

于 2013-06-01T07:35:59.873 回答
0

CodeIgniter 在 codeigniter 中内置了对浏览器或代理检测的支持

内部控制器使用以下示例代码:

$this->load->library('user_agent');
if ($this->agent->is_mobile()) {
    // Is a mobile browser
} else {
     // Is a Desktop/Bot User Agent
}
于 2016-12-19T13:31:14.800 回答