ARTICULOS

Detector de navegadores WAP

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

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. Introducción al WML
2. Detector de navegadores WAP
3. Generación Dinámica de Contenidos WAP
Más artículos...

Otros artículos...

PHP Upload de archivos al servidor
Java Script Validando emails con JavaScript
Marketing El posicionamiento en los buscadores de Internet
Bases de Datos Optimizar consultas MySQL
XML Desarrollo de un libro de visitas usando XML y ASP
ASP Creando una galería de fotos
ASP Cómo crear un XML desde ASP
HTML Tips para diseñar newsletters
Java Script Abrir una ventana cuando otra es cerrada
PHP Definción y uso de clases en PHP
Más artículos...