Detectando navegación móvil en CodeIgniter 3: clase User Agent

- Andrés Cruz

Detectando navegación móvil en CodeIgniter 3: clase User Agent

Saber por dónde nos están accediendo es una información que para ti puede ser muy importante si tu tráfico viene desde un móvil principalmente como un Android o un iPhone y tu web no está optimizada para móviles o tiene carencias entonces puede ser importante que modifiques tu web para que se visualice correctamente.

Si tu tráfico viene de un navegador importante como Firefox y tu web tiene carencias con este navegador, o no funciona todo como debería es importante para ti saberlo para hacer las correcciones necesarias.

CodeIgniter Logo

Si por el contrario, NO tienes tráfico por determinados dispositivos o en determinados navegadores y tu web no funciona correctamente en alguno de tus casos, entonces puede que no te interese al menos de momento hacer cambios en tu web para que trabaje en los casos anteriores.

En esta entrada veremos cómo detectar el agente, nombre del navegador y versión del navegador en donde se está ejecutando nuestra aplicación; esto es particularmente útil para llevar a otro nivel nuestras aplicaciones al momento de trabajar con el responsive u otros escenarios.

Además esta es una potente librería que nos permite activar/desactivar ciertos componentes según la plataforma y navegador empleado por el usuario, además, de que en caso de que en nuestra aplicación empleamos tecnologías experimentales o que solo funcionan en ciertos navegadores -o por las versiones del mismo- sobre todo en las tecnologías del lado del cliente estas funciones en CodeIgniter nos caerán de perla.

Importando la librería en nuestro proyecto en CodeIgniter

La librería que emplearemos es nativa de CodeIgniter, lo que significa que no tenemos que descargar ninguna otra librería de GitHub u otras web como hemos realizado en anteriores entradas cuando trabajamos con algunas librerías en particular para desarrollar ciertas opciones:

Para importar la librería empleamos la siguiente línea de código en nuestro controlador:

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

Como puedes ver, es una librería que forma parte de Core de CodeIgniter; A partir de la inclusión anterior, ahora podemos emplear la serie de métodos que nos brindan datos sobre el agente que está accediendo a nuestra aplicación.

Detectando un navegador móvil

Ahora, para detectar si un navegador es o no móvil empleamos la siguiente línea de código:

if ($this->agent->is_mobile()) { }

La anterior línea de código retorna TRUE en caso de que el navegador que está empleando el usuario es de un dispositivo móvil y FALSE en caso contrario.

Otros tipos de detecciones del agente

Además de las detecciones anteriores, podemos detectar si es un robot (una araña):

$this->agent->is_robot();

O un usuario regular a través de un navegador:

$this->agent->is_browser();

Detectando la plataforma del usuario

También podemos detectar el tipo de sistema operativo que está empleando el usuario al momento de ingresar a nuestra aplicación, esto de por sí es poco útil ya que la gran ventaja que tienen las aplicaciones móviles con respecto a otros tipos de aplicaciones es su versatilidad de ejecutarse en donde sea, pero esto puede servir más de carácter informativo para llevar un control interno de que tipo de usuarios acceden a nuestra aplicación (por ejemplo):

echo $this->agent->platform();

Detectando el tipo y nombre del navegador con CodeIgniter

Como señalamos anteriormente, además de indicar si el navegador móvil o no, también puede darnos más datos del navegador como la versión:

$this->agent->version();

El nombre del navegador es igual de fácil:

$this->agent->browser();

Detectando Sistema Operativo con la clase User Agent

El nombre de la plataforma (Window 10, MAC OS...):

$this->agent->platform();

Detectando si es un robot con la clase User Agent

También podemos detectar si "lo" que no está accediendo a nuestro sitio, no es humano... si no un robot, pero no cualquier robot si no los buscadores; por ejemplo; para ello:

$this->agent->robot();

Esto sería los métodos principales que debemos de conocer al momento de obtener datos sobre el agente que está empleando en nuestra aplicación que como indicamos anteriormente no necesariamente debe ser un usuario/persona.

Conclusiones

Como habrás podido notar, esta es una poderosa herramienta que nos trae nuestro framework preferido... CodeIgniter que podemos emplear sin necesidad de instalar nada, esta clase forma parte del Core de CodeIgniter y con ella podemos tener información sobre la persona o robot que nos está accediendo, tener datos sobre que sistema operativo o si es navegación móvil lo podemos obtener y actuar en consecuencia.

Lo mejor de esta clase es que no tenemos que depender de herramientas de terceros como Google Analytics para tener toda esta información, basta con configurar unas cosas es un controlador o en un helper como lo veas mejor y hacer lo que quieras hacer.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.