CodeIgniter – Cómo averiguar si nos visitan desde un móvil

Ahora mas que nunca, nos puede interesar saber en nuestra aplicació desarrollada con CodeIgniter 3, si hay usuarios que nos visitan desde el ordenador o, desde un dispositivo móvil (smartphone o tablet).

En CodeIgniter 3 se encarga la librería ‘user_agent’. Los pasos para utilizarlo es sencillo:

Controlador news.php

Este controlador es el encargado de administrar las noticias.

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class News extends CI_Controller {

	function __construct()
	{
		parent::__construct();
		// Modelos
		$this->load->model('news_model');
		// Librerias
		// Cargamos la librería que nos permite saber el tipo de dispositivo con el que nos visitan
		$this->load->library('user_agent');
	}

	// Listado de todas noticias
	function list(){
		if ( $this->agent->is_mobile() ){
			// El código necesario para tratar si nos visitan desde móvil
			// Una vez tenemos los datos necesarios, cargamos la vista para móvil
			$this->load->view('mobile/news_view');
		} else {
			// El código para tratar si nos visitan desde navegador
			// Una vez tenemos los datos necesarios, cargamos la vista para navegador de PC
			$this->load->view('web/news_view');
		}
	}
}

Como podéis observar, en el constructor de la clase, llamamos a la librería ‘user_agent’. En cada una de las funciones miramos con la función $this->agent->is_mobile() si nos visitand esde móvil. En éste caso, tratamos los datos a mostrar y cargamos la vista para móvil. En caso contrario, tratamos los datos y cargamos la vista de navegador web.

Hay dos opciones a la hora de tratar los datos. La primera es que los datos que se muestran en móvil o web sean los mismos o, como es mas normal, los datos a mostrar en móvil son menos que en el browser de un PC. Por temas de conexión, debemos optimizar la muestra de datos en móvil.

Las vistas

Ya hemso visto el controlador. Ahora vemos la estructura de las vistas. Cómo hemos observado, al cargar las vistas desde el controlador lo hemos hecho con la orden:

// Caso móvil
$this->load->view('mobile/news_view');
// Caso web
$this->load->view('web/news_view');

Si os fijáis, la vista viene precedida de una carpeta llamada mobile o web según lo que queramos mostrar. Así pues, la estructura dentro de nuestra carpeta de vistas, deberá ser:

aplicattion

= views

== web

== mobile

== ipad

== otros

dentro de la carpeta views, tenemos diferentes carpetas que contendrán las respectivas vistas para tratarlas según el dispositivo con el que nos visiten.

Pues ya con esta información, podéis comenzar a crear vuestra aplicación tratando las vistas según el dispositivo con el que os visiten.

Pues ya sabes cómo averiguar en CodeIgniter 3 si los usuarios nos visitan desde un móvil o un Pc.

Si has encontrado interesante el artículo, quizás te interesa ver todos los tutoriales de Codeigniter 4 que tenemos creados.


Más información

CodeIgniter User_agent library manual