ARTICULOS

Detector de navegadores WAP

Autor: Miguel Cruz Martínez (http://www.signo-net.com) - 14/01/2003

Del.icio.us Facebook Technorati

Normalmente los portales wap están alojados en un dominio de tercer nivel del tipo http://wap.midominio.com. Lo que a continuación propongo es una solución profesional que ya usan algunos portales y es una aplicación que detecta desde la página principal, si el usuario ha accedido desde una navegador wap o html, y redirigirlo a la version wml o html respectivamente.

Antes de nada, me gustaría aclarar que la solución de usar javascript no es viable, puesto que javascript es un lenguaje que se interpreta y se ejecuta en el navegador del usuario, pero no todos los navegadores wap permiten el uso de javascript.

La clave de este asunto está en que tanto los navegadores wap como los navegadores html le dicen al servidor el tipo de información que esperan recibir mediante el tipo mime.

Dicha información es guardada en una variable de servidor llamada HTTP_ACCEPT.
El valor de HTTP_ACCEPT para los navegadores wap es text/vnd.wap.wml, para los navegadores html es */* (Internet explorer 6 and Netscape 6).

Podemos entender que las últimas versiones, al menos, de los navegadores html más populares sean genéricos a la hora de aceptar cualquier tipo de archivo del servidor (html, shtml, php, cgi, asp, cfm, cgi, xml...) , mientras que los navegadores wap en ese sentido son específicos al aceptar sólo información de tipo wml.

A continuación muestro el código php de un index.php que contiene tanto la versión wap como html en el mismo archivo.

<?
$dime=$HTTP_ACCEPT;
if (ereg("wap.wml",$dime)){
header("Content-Type: text/vnd.wap.wml");
echo '<?xml version="1.0"?>';
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<!-detector wap por Miguel Cruz, mcruz@signo-net.com -->
<card id="MainCard" title="Bienvenido">
<p align="center">
Hola usuario de navegador wap</p>
</card>
</wml>
<?
}else{
print " Hola usuario de navegador html ";
}
?>

Y si se desea redirigir al usuario a una u otra versión, este es el código del index.php, donde sólo hay que modificar las localizaciones url de ambas versiones.

<?
$dime=$HTTP_ACCEPT;
# By Miguel Cruz Martinez, mcruz@signo-net.com
if (ereg("wap.wml",$dime))
header('Location: http://www.miurl_wap/index.wml');
else
header('Location: http://www.miurl_html/index.html');
?>

 

Más artículos sobre WML WAP

1. Detector de navegadores WAP
2. Introducción al WML
3. Generación Dinámica de Contenidos WAP
Más artículos...

Otros artículos...

Hojas de Estilo Menú rollover
Java Script Deshabilitar el botón derecho del mouse
PHP Consultas de selección aleatoria
Marketing Utilizando Sitemaps para buscadores
Cold Fusion Introducción a Cold Fusion
ASP Haciendo restas entre fechas
Java Script Fecha de la última actualización
Varios Alojamiento gratuito y con dominio propio
ASP Enlace externo dinámico con frames
ASP Contador de visitas sin utilizar bases de datos
Más artículos...