2013-05-31 3 views
6

Я смог обнаружить, какое мобильное устройство использует пользователь с помощью CodeIgniter, но я не смог определить, какая операционная система работает с текущим мобильным устройством.Обнаружение мобильной ОС CodeIgniter

Скажем, кто-то использует мобильное устройство Samsung, которое работает на Android, а другое использует обычную мобильную операционную систему Java, которая по-прежнему является Samsung. Как я могу проверить, в какой операционной системе работает каждый пользователь?

ответ

17

Скачать библиотеку из 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; 
    } 
} 

найти документацию 'библиотек

внутри главного контроллера на http://dwij.co.in/mobile-os-detection-in-php-codeigniter

+0

Благодаря это работает отлично ! –

0

если вы используете класс сеанса есть переменная встроенный правый. user_agent

4

Я позаимствовал/а tole этот метод загрузки класса из интеграции phodexcel codeigniter.

Скачать библиотеку из http://mobiledetect.net, но поставить Mobile_Detect.php в «THIRD_PARTY», затем создать 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) Я рекомендую добавить if (! defined('BASEPATH')) exit('No direct script access allowed'); после открытия <?php в Mobile_Detect.php для предотвращения прямого доступа к классу.

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 функцию и проверить агент пользователя
// Это напечатает агент пользователя

<?php echo is_MTC(); ?> 

Чтобы узнать больше о помощнике codeigniter Функция https://ellislab.com/codeigniter/user-guide/general/helpers.html

2

Загрузить lib.

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

использовать эту функцию для обнаружения подвижно

$mobile=$this->agent->is_mobile(); 
if($mobile){ 
    //your code 
} 
0

CodeIgniter имеет встроенную поддержку для browser or agent detection in codeigniter

Внутри контроллера используйте следующий код:

$this->load->library('user_agent'); 
if ($this->agent->is_mobile()) { 
    // Is a mobile browser 
} else { 
    // Is a Desktop/Bot User Agent 
} 
Смежные вопросы