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

Ahora mas que nunca, nos puede interesar saber si un usuario visita nuestra web desde el ordenador o, desde un dispositivo móvil (smartphone o tablet).

En CodeIgniter 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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:

2
3
4
5
// 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.

Más información

CodeIgniter User_agent library manual

Información relacionada

Un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*