我已经能够通过 CodeIgniter 检测到用户正在使用什么移动设备,但是我无法检测到当前移动设备正在运行什么操作系统。
假设有人正在使用运行在 Android 上的三星移动设备,而另一个人正在使用仍然是三星的普通 Java 移动操作系统。如何查看每个用户使用的操作系统?
我已经能够通过 CodeIgniter 检测到用户正在使用什么移动设备,但是我无法检测到当前移动设备正在运行什么操作系统。
假设有人正在使用运行在 Android 上的三星移动设备,而另一个人正在使用仍然是三星的普通 Java 移动操作系统。如何查看每个用户使用的操作系统?
从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/上查找文档
加载库。
$this->load->library('user_agent');
使用此功能检测是否移动
$mobile=$this->agent->is_mobile();
if($mobile){
//your code
}
我从 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
后添加,防止直接访问类。
从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
如果您使用会话类,则内置一个变量。user_agent
CodeIgniter 在 codeigniter 中内置了对浏览器或代理检测的支持
内部控制器使用以下示例代码:
$this->load->library('user_agent');
if ($this->agent->is_mobile()) {
// Is a mobile browser
} else {
// Is a Desktop/Bot User Agent
}