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á.
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