Detectando navegación móvil en CodeIgniter 3: clase User Agent
- Andrés Cruz
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.
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:
- Login Social con la SDK de Google con PHP-CodeIgniter
- Login Social con la SDK de Facebook con PHP-CodeIgniter
- Login Social en Twitter con PHP-CodeIgniter y la Twitteroauth
- ¿Cómo crear una API REST con CodeIgniter?
- Creando una plataforma de pago con PayPal y CodeIgniter (parte 1)
Para importar la librería empleamos la siguiente línea de código en nuestro controlador:
$this->load->library('user_agent');
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()) { }
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.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter