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

Artículos relacionados

Frameworks HTML5 Open Source para crear app/webs m... Listado de algunos Frameworks HTML5 Open Source por si os planteáis crear aplicaciones para móvil: Bootstrap Kendeo UI TopCoat Intel's App...
HTML KickStart – Crea rápidamente webs De nuevo, otro framework para estructurar y crear rápidamente páginas web. Estamos hablando de HTML KickStart. Por el alto número de elementos que ofr...
MySQL – Listar registros aleatorios Pequeño código para que MySQL liste un determinado número de registros aleatoriamente. Ejemplo: En una tabla 'jugadores' tenemos los datos de los j...
CodeIgniter – Crear cookies No se si os ha pasado, que siguiendo las instrucciones que hay en la documentación de CodeIgniter, no habéis podido crear una Coockie en este FrameWo...

Un comentario

Deja un comentario

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

*