Ir al contenido principal

Como detectar el dispositivo móvil en asp

Algunas veces es necesario detectar si nuestra página esta siendo navegada a través de una pc o de un dispositivo móvil como una pda, ppc o smartphone y enviar al cliente a una versión apropiada para su plataforma. Este ejemplo muestra en asp como reconocer el dispositivo y redireccionar al cliente, si este está viendo nuestro sitio desde una pc lo manda a la página inicial del sitio, si está viendo desde una Pocket PC o PDA lo manda a una versión html más pequeña y si está navegando con un celular lo manda a una versión wap. Para esto podemos consultar los valores de las variables "HTTP_ACCEPT" y "HTTP_USER_AGENT".
Para obtener los valores de variables usamos Request.ServerVariables("HTTP_ACCEPT") y Request.ServerVariables("HTTP_USER_AGENT")
"HTTP_ACCEPT" sirve para avisarle al servidor el tipo de contenido que el navegador del cliente soporta y es útil para detectar los navegadores de los teléfonos celulares, que solo soportan wap. El valor devuelto por "HTTP_ACCEPT" para un celular con navegador wap es "text/vnd.wap.wml", y para los navegadores HTML es "*/*" (Internet Explorer 6 e Internet Explorer 4.01 para pocket PC ) y "
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" (Firefox 2.0).
"HTTP_USER_AGENT" nos devuelve información acerca de el sistema operativo, la versión y el tipo de navegador del cliente y otras cosas, por lo tanto podemos saber si es una pda.
Unos valores de
"HTTP_USER_AGENT" pueden ser:
"
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" Internet Explorer 6.0,
"
Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3" firefox 2.0,
"
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)" Pocket pc con IE 4.0.
Entonces lo que tenemos que hacer es buscar la cadena que identifique nuestro dispositivo y redireccionar.

El código sería algo como esto:
<% var = Request.ServerVariables("HTTP_ACCEPT")
var2= Request.ServerVariables("HTTP_USER_AGENT")
if (instr(var2,"PPC") <> 0 or instr(var2,"Windows CE") <> 0 or instr(var2,"PDA") <> 0 instr or(var2,"Palm") <> 0 or instr(var2,"BlackBerry") <> 0) then
Response.Redirect("ppc/main.asp")
else
if (var = "text/vnd.wap.wml") then
Response.Redirect("ppc/main.wml")
else
Response.Redirect("home.htm")
end if
end if
%>


Primero obtenemos el valor de las variables luego buscamos dentro de user_agent el valor correspondiente a nuestro dispositivo movil, si lo encontramos se redirecciona a la página correspondiente, si no está comprobamos si es un navegador wap, si tampoco es, se manda al cliente a la web diseñada para pc.
Sería bueno que este código esté en la primer página que visita el cliente, así direccionamos directamente a su versión adecuada. Generalmente lo colocamos en default.asp, dentro del server.
Los valores de dispositivos móviles que estamos buscando dentro de user_agent son los más comunes pero hay otros.
Un ejemplo en PHP muy bueno que a mi me sirvió bastante lo pueden encontrar acá y para la parte de los navegadores wap acá.

Comentarios

Entradas más populares de este blog

Como eliminar coordenada Z de elementos (Autocad, VLisp)

Este ejemplo muestra como poner en cero la coordenada Z de unos elementos dentro de un dibujo de AutoCAD, es decir "baja" las entidades que estén dibujadas a una altura en el eje Z y le asigna el valor "0", o en el caso de polilíneas 3d las aplana poniendole a todos sus vertices una altura 0 en Z y respentando sus coordenadas X e Y. Solo tiene en cuenta los puntos, los textos (TEXT y MTEXT), las líneas y las polilíneas. Básicamente lo que hace es hacer un conjunto por cada tipo de entidad (línea, polilínea, texto, y punto) analizar los puntos por cada uno de los elementos dentro del conjunto y redefinir cada punto poniendo en 0 su coordenada Z, en el caso de las polilíneas recorre uno por uno todos los vértices que la componen. El ejemplo puede mejorarse, quizás no sea la forma más óptima de hacerlo, por ejemplo podriamos hacer solo un conjunto y trabajar con todos lo elementos, pero bueno de esta manera quizás es un poco más claro, además hay que tener en cuenta qu

Ejemplo MVC en PHP

Implementación básica del patrón Modelo Vista Controlador (MVC) en PHP utilizando OOP. MVC es un patrón de diseño que implementa tres capas con el objetivo de separar la interfaz de usuario, las reglas de negocio y el acceso a los datos. Aquellos que no tienen conocimiento de este patrón les recomiendo que lean brevemente de que se trata MVC y la programación orientada a objetos. En esta implementación PHP las vistas manejan todo lo relacionado con la interfaz del usuario (html, css, javascript), el modelo proporciona el acceso a los datos (para facilitar este ejemplo se simula la conexión a una Base de Datos) y el controlador administra toda la lógica del negocio y es el nexo entre el modelo y la vista. Hay muchos frameworks que implementan MVC en PHP de forma muy efectiva y son muy populares. Este ejemplo está orientado a aquellos que quieran hacer su propio framework o que quieran conocer el funcionamiento paso a paso. En este ejemplo se muestra una pantalla de bienvenida co