2013-05-31 10 views
6

Byłem w stanie wykryć, jakiego urządzenia przenośnego używa użytkownik z CodeIgniter, ale nie byłem w stanie wykryć, jaki system operacyjny działa bieżące urządzenie mobilne.CodeIgniter mobile OS detection

Załóżmy, że ktoś korzysta z urządzenia mobilnego Samsung działającego pod kontrolą systemu Android, a inny używa normalnego mobilnego systemu operacyjnego Java, który wciąż należy do firmy Samsung. Jak mogę sprawdzić, który system operacyjny jest dla każdego użytkownika?

Odpowiedz

17

Pobierz bibliotekę z http://mobiledetect.net Put Mobile_Detect.php do

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; 
    } 
} 

dokumentacji Szukaj 'bibliotek

wewnątrz głównego sterownika na http://dwij.co.in/mobile-os-detection-in-php-codeigniter

+0

Dzięki działa idealnie ! –

0

jeśli użyć klasy sesji nie jest zmienną wbudowany bezpośrednio. user_agent

4

Pożyczyłem/s tole tę metodę ładowania klasy z integracji phpexcel codeigniter.

Pobierz bibliotekę z http://mobiledetect.net, ale umieścić Mobile_Detect.php w „THIRD_PARTY” następnie utworzyć MobileDetect.php w „biblioteki” i umieścić w nim następujący kod:

<?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(); 
    } 
} 

Teraz można go używać w swoich kontrolerach tak:

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

Jestem pewien, że istnieją inne (nawet lepiej) sposoby integracji mobiledetect do CodeIgniter, ja po prostu chciałem podzielić drogę zrobiłam to, mam nadzieję, że to pomocne.

Kilka uwag:

1) Nie trzeba używać pliku pośredniczącego MobileDetect.php, jeśli umieścić Mobile_Detect.php bezpośrednio w „biblioteki” można nadal używać go bez $detect = new Mobile_Detect(); zamiast nazwać funkcje podobały się: $this->mobile_detect->isMobile()

2) Nazwa klasy pliku pośredniczącego może być dowolna, o ile przestrzegane są wytyczne CodeIgniter. Tak na przykład można użyć „MD” jako nazwa klasy, a następnie odwołać go z $this->md->isMobile()

3) zalecam dodanie if (! defined('BASEPATH')) exit('No direct script access allowed'); po otwarciu <?php z Mobile_Detect.php aby uniknąć bezpośredniego dostępu do klasy.

1

Pobierz Biblioteka z https://github.com/serbanghita/Mobile-Detect Skopiuj Mobile_Detect.php do THIRD_PARTY katalogu Tworzenie klasy pomocnika w CodeIgniter // Ta funkcja zwróci agenta użytkownika telefonu lub tabletu lub komputera

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; 

W widoku Ty można bezpośrednio wywołać funkcję is_MTC i sprawdzić agenta użytkownika
// To będzie drukować agenta użytkownika

<?php echo is_MTC(); ?> 

Aby dowiedzieć się więcej o helper codeigniter Funkcja https://ellislab.com/codeigniter/user-guide/general/helpers.html

2

Załaduj bibliotekę.

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

Funkcja ta służy do wykrywania jest ruchoma

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

CodeIgniter mają wbudowane wsparcie dla browser or agent detection in codeigniter

Wewnątrz kontrolera użyć następującego przykładowego kodu:

$this->load->library('user_agent'); 
if ($this->agent->is_mobile()) { 
    // Is a mobile browser 
} else { 
    // Is a Desktop/Bot User Agent 
}