2013-05-31 5 views
6

Ich konnte feststellen, welches Mobilgerät ein Benutzer mit CodeIgniter verwendet, aber ich konnte nicht erkennen, welches Betriebssystem auf dem aktuellen Mobilgerät ausgeführt wird.CodeIgniter mobile OS-Erkennung

Nehmen wir an, jemand benutzt ein Samsung-Mobilgerät, das auf Android läuft, und ein anderes nutzt ein normales Java-Mobilbetriebssystem, das immer noch Samsung ist. Wie kann ich überprüfen, auf welchem ​​Betriebssystem sich jeder Benutzer befindet?

Antwort

17

herunterladen Bibliothek von http://mobiledetect.net Put Mobile_Detect.php um

innen Hauptsteuerung

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

Suche Dokumentation 'Bibliotheken' auf http://dwij.co.in/mobile-os-detection-in-php-codeigniter

+0

Dank es funktioniert perfekt ! –

0

wenn Sie die Sitzung Klasse dort verwenden, ist eine Variable direkt eingebaut. user_agent

4

ich ausgeliehen/s tolerieren Sie diese Methode zum Laden der Klasse aus der phpexcel coderigniter Integration.

herunterladen Bibliothek von http://mobiledetect.net, sondern setzen Mobile_Detect.php in 'third_party' dann erstellen MobileDetect.php in 'Bibliotheken' und setzen Sie den folgenden Code in es:

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

Jetzt können Sie es in Ihrem Controller verwenden wie folgt aus:

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

ich bin sicher, dass es andere gibt (noch besser) Wege mobiledetect in codeigniter zu integrieren, ich die Art und Weise wollte ich es tat einfach teilen, ich hoffe, es ist hilfreich.

Ein paar Anmerkungen:

1) Sie müssen, wenn Sie Mobile_Detect.php setzen nicht die Stub-Datei MobileDetect.php verwenden, direkt in ‚Bibliotheken‘ Sie es immer noch ohne $detect = new Mobile_Detect(); die stattdessen aufrufen können Funktionen mochte dies: $this->mobile_detect->isMobile()

2) Der Name der Stub-Datei-Klasse kann alles sein, was Sie wollen, solange Sie CodeIgniter Richtlinien folgen. So zum Beispiel könnten Sie ‚MD‘ als die Klassennamen verwenden und verweisen Sie dann mit $this->md->isMobile()

3) Ich empfehle das Hinzufügen if (! defined('BASEPATH')) exit('No direct script access allowed'); nach der Eröffnung <?php von Mobile_Detect.php direktem Zugriff auf die Klasse zu verhindern.

1

Download-Bibliothek von https://github.com/serbanghita/Mobile-Detect Kopieren Sie die Mobile_Detect.php in third_party Verzeichnis Erstellen Sie eine Hilfsklasse in codeigniter // Diese Funktion wird den User-Agent-Telefon oder Tablet oder Computer zurückkehren

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; 

Nach Ansicht Sie direkt die is_MTC Funktion aufrufen und prüfen Sie den User-Agent
// Dadurch wird der User-Agent

<?php echo is_MTC(); ?> 
drucken 0

Um mehr über codeigniter helper zu wissen https://ellislab.com/codeigniter/user-guide/general/helpers.html

2

Load lib.

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

verwenden diese Funktion zu erkennen ist mobil

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

CodeIgniter haben für browser or agent detection in codeigniter

Innen-Controller verwenden den folgenden Beispielcode in Unterstützung gebaut:

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