Criando sites para celular com WML

Tudo o que você sempre quis saber e nunca quiseram te contar. Inicie-se no mundo da tecnologia sem fio, a próxima etapa do futuro da informática. Familiarize-se com os novos conceitos e crie seu próprio site para ser acessado através de celular.

[ Hits: 140.922 ]

Por: Fábio Berbert de Paula em 25/10/2003 | Blog: https://fabio.automatizando.dev


Configurando o Apache para servir páginas WML



Para oferecer páginas WML acessíveis por celulares, precisamos somente de um servidor web, visto que a requisição da página é feita através dos protocolos TCP/IP e HTTP a partir do gateway da operadora e não pelo protocolo WAP como era de se esperar uma vez que o ponto originador de conexão é um aparelho celular. Este gateway irá receber o código WML da página e então encaminhá-lo para o cliente/celular.

Já que estamos falando de servidor web, nada melhor que mostrarmos o Apache, o software mais popular do mundo em sua categoria.

Por padrão o Apache já vem habilitado para servir páginas WML. Na verdade nada há de ser configurado, precisamos apenas definir um Mime-Type dizendo que os arquivos com extensão *.wml deverão retornar um cabeçalho do tipo Content-Type: text/vnd.wap.wml para a aplicação que fez a requisição.

Edite o arquivo /etc/apache/mime.types (a localização pode variar de acordo com sua distribuição) e certifique-se que existem as seguintes linhas:

application/vnd.wap.sic
application/vnd.wap.slc
application/vnd.wap.wbxml                       wbxml
application/vnd.wap.wmlc                        wmlc
application/vnd.wap.wmlscriptc                  wmlsc

Por fim, adicione as seguintes linhas em /etc/apache/httpd.conf:

AddType text/vnd.wap.wml wml
AddType image/vnd.wap.wbmp wbmp
AddType text/vnd.wap.wmlscript wmls
AddType application/vnd.wap.wmlc wmlc

Reinicie o Apache e pronto, ele está pronto para servir páginas WML.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Como funciona internet no celular
   3. O protocolo WAP
   4. A linguagem WML
   5. Configurando o Apache para servir páginas WML
   6. Criando sua primeira página WML
   7. Testando sua página WML sem usar o celular
   8. Conclusão e referências
Outros artigos deste autor

Como preparar o Vim/Neovim para corrigir ortografia em português

Diversão e Entretenimento no Linux

SQL Dicas & Truques (parte 2)

Torne-se um DJ usando Linux

Rodando ASP em servidores web Linux

Leitura recomendada

Cadastro e login em PHP

BolachaMALPPH Apache X Lighttpd X PHP/FastCGI X APC X HTTPREF X MySQL

PHP 5 - Compilando com as melhores práticas com PHP 4

Guia completo do Ocomon no Linux - Módulo cliente, abertura de ocorrência (exclusivo VOL)

Referências ou ponteiros em PHP

  
Comentários
[1] Comentário enviado por jeffestanislau em 25/10/2003 - 17:57h

Grande Fábio,
Adorei o artigo e acho muito legal essa sua atitude, pois sei que vc ralou em busca dessas informações para desenvolver seu projeto, e mesmo assim, está passando a bola para a galera ter conhecimento do assunto.

Cara, nota 10 pro seu artigo e 10 pelo seu espírito "Viva o Linux", que realmente é a alma deste site!!!

Parabéns meu amigo!!!

Jeffestanislau
Jefferson Estanislau da Silva

[2] Comentário enviado por Ragen em 26/10/2003 - 20:24h

Olá Fábio,

Muito show seu artigom, mas se me permite queria dar uma complementainha nele...

Naquela parte "Configurando o Apache para servir páginas WML" ele não é assim OBRIGATORIAMENTE necessario para fazer com que o webserver sirva páginas WML, ou seja, vc pode fazer que o cel acesse um página PHP mas a interprete como WML - o que nos permite gerar páginas WML dinâmicas.

Saca só um exemplo:

<?
header("Content-type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"";?><?echo "?>";?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">;
<wml>
<?
$W_TITLE="OqueROLA.com";
$W_ENCODINGTYPE=0;
?>
<card id="p1" title="<? echo $W_TITLE ?>">
<do type="prev" label="Back"><prev/></do>
<p><img src="Images/logo.wbmp" alt="OqueROLA.com"/><br/>
<a href="http://www2.oquerola.com.br/wap/consulta.php?id=1">Festas</a><br/>
<a href="http://www2.oquerola.com.br/wap/consulta.php?id=2">Shows</a><br/>
<a href="http://www2.oquerola.com.br/wap/consulta.php?id=3">Cinema</a><br/>
<a href="http://www2.oquerola.com.br/wap/consulta.php?id=4">Teatro</a><br/>
<a href="http://www2.oquerola.com.br/wap/enquete">Enquete</a></p>
</card></wml>

Não usei banco de dados, mas como vê é questão de adicionar ou não ali no corpo do programa.


Ah... Outra dica 95% dos cels não suportam acentos, ele dá erro no interpretador e fala que a página não é válida por exemplo...

Enfim... "Aventure-se no mundo do WAPrlboro" ^^

[]`s

Ragen

[3] Comentário enviado por fabio em 26/10/2003 - 23:12h

Fala Ragen,

Você está certo, eu inclusive programo em PHP + WML, mas optei por falar somente do WML para não juntar muita informação numa coisa só e confundir o pessoal. Inclusive os gateways WAP são bem toscos com relação a armazenamento de páginas em cache, assim sendo, se você for programar uma página dinâmica com WML, é bom forçar o não armazenamento em cache da seguinte forma:
<?
header("Content-type: text/vnd.wap.wml");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
...
?>

É isso aí! Legal o site www.oquerola.com.br, você que fez?

[4] Comentário enviado por Ragen em 27/10/2003 - 01:56h

Foi sim...

Comecei a aprender PHP no inicio de 2001 e em meados do mesmo ano comecei a fazer esse site, alguns códigos estão bem toscos - gambiarra pura de iniciante ^^, mas não posso reclamar pq tive uma chance única de aprender a programar logo tendo um site de grande porte pela frente.

Tô tendo outra chance muito boa que é de botar em prática toda a teoria que eu aprendi até agora...

Enfim... É isso ^^

[]`s

Ragen

[5] Comentário enviado por cesarcardoso em 29/10/2003 - 16:05h

Fabio, o artigo está show (pra variar), mas...

"E lembre-se, enquanto navega pela internet, você está pagando pulsos de ligação local. Consulte sua operadora para maiores detalhes referentes aos preços. "

BÉÉÉÉÉÉÉÉÉ!
Você não paga pulso local, até porque em telefonia celular a tarifação é por minuto. De qualquer maneira, vale consultar a operadora, até porque algumas operadoras cobram valores diferentes para o WAP normal (o que vai a 9600) e para o WAP via GPRS ou WAP via 1xRTT (para o povo em CDMA).

[6] Comentário enviado por cesarcardoso em 05/11/2003 - 16:55h

Uma dica pra quem quiser testar sites WAP: a Digital Airways oferece um demo (completíssimo) do seu browser WAP em Java, você só tem que ter o J2RE na sua máquina. O site deles é http://www.digitalairways.com/DAW/.

[7] Comentário enviado por boreiajr em 09/11/2003 - 11:23h

Aê cara, nota 100 pro teu trabalho, esculacho. Eu queria saber se Existe algum navegador WAP pro Linux? Mais precisamente o Debian...

[8] Comentário enviado por fabio em 06/01/2004 - 03:11h

Infelizmente ainda desconheço, mas você pode usar um dos simuladores WAP que cito no artigo.

[9] Comentário enviado por removido em 26/10/2004 - 03:31h

Bom... Não encontrei exatamente um emulador mas creio que sirva pra testar as páginas pelo menos.

Fuçando por aí, achei um plugin pro Mozilla, o wmlbroser. instalem ele e vcs poderão navegar e visualizar paginas wml através do Mozilla.

[10] Comentário enviado por removido em 26/10/2004 - 03:38h

Olá fabio. Sei que esse vc postou esse tema faz um tempinho, mas eu toh mexendo nisso agora e preciso de uma ajudinha. Bom eu consegui montar o Apache como servidor WAP e as páginas e talz. Acessando pelo Mozilla, consigo ver as páginas blz. Tudo em cima. Contudo, quando tento acessar o site por algum celular, dá um erro dizendo "Portad. servico nao disponível". Falta algo mais além de montar o servidor?

Se alguém puder me ajudar, agradeço colaborando mais vezes ^_^

[11] Comentário enviado por removido em 26/10/2004 - 03:39h

Olá fabio. Sei que esse vc postou esse tema faz um tempinho, mas eu toh mexendo nisso agora e preciso de uma ajudinha. Bom eu consegui montar o Apache como servidor WAP e as páginas e talz. Acessando pelo Mozilla, consigo ver as páginas blz. Tudo em cima. Contudo, quando tento acessar o site por algum celular, dá um erro dizendo "Portad. servico nao disponível". Falta algo mais além de montar o servidor? (Esse teste eu tentei de um celular nokia 3520)

Se alguém puder me ajudar, agradeço colaborando mais vezes ^_^

[12] Comentário enviado por jeanclaycosta em 09/03/2005 - 19:07h

E AI, BLZ RAGEN

TO PRECISANDO DE UMA DICA. ESTE CODIGO DEVE SER SALVO EM .PHP OU .WML

[13] Comentário enviado por jose_maria em 18/03/2005 - 23:31h

Tentei acessar o site sugerido no artigo pelo meu Nokia 3100:
Failed to compile the wml page!
url:
http://www.vivaolinux.com.br/ola.wml


Tá massa o artigo, vou dar um fuçada em wml.

[14] Comentário enviado por filtis em 31/08/2006 - 15:50h

caraca mto bom...

[15] Comentário enviado por r@quel camargos em 29/11/2006 - 13:35h


amei seu artigo vc esta de parabens!!! mas eu estou começando nesta area agora e preciso de mais artigo sobre wml,o q vc me sugere?
e alem disso tentei acessar o site q vc sugeriu mas ele nao abre
(www.gelon.net) q outro vc sugere para mi encontrar um emulador wap?
qualquer ajuda e bem vinda valeu!!!!!

[16] Comentário enviado por fabio em 29/11/2006 - 13:43h

Olá, tente: www.wapsilon.com

Um abraço,
Fábio

[17] Comentário enviado por gpr.ppg.br em 25/11/2007 - 17:46h

como faço para na pagina inicial deixar ou vai para html ou vai para wml

tentei isso mas nao funciona

<?php
/////////// $$$$ POR FAVOR NÃO RETIRE OS CRÉDITOS $$$$$ ////////////
// REDIRECIONADOR WAP / WEB v0.2 //
// * * * Elaborado por =IceBurn= * * * //
// ----> W W W . T E N H A M E D O . N E T <---- //
//////////////////////////////////////////////////////////////////////

#-----------------// CONFIGURAÇÃO //-------------------#

$WAP = "http://meusite.com/menu.wml"; // URL da sua página wap

$WEB = "http://meusite.com/menu.html"; // URL da sua página web

#-----// A PARTIR DAQUI NÃO PRECISA ALTERAR NADA //----#

if ( eregi($_SERVER['HTTP_ACCEPT'], "vnd.wap.wml") ) { /* Corrigido */

$wml = true;

} else {

$navegador = substr(trim($_SERVER['HTTP_USER_AGENT']),0,4);

$tele = array("Noki",
"Eric",
"WapI",
"MC21",
"AUR ",
"R380",
"UP.B",
"upsi",
"UPG1",
"upsi",
"QWAP",
"Jigs",
"Java",
"Alca",
"MITS",
"MOT-",
"My S",
"WAPJ",
"fetc",
"ALAV",
"Wapa");

foreach($tele as $movel) {
if ( eregi("$navegador", $movel) )
$wml = true;
}

if ($wml)
{ Header("Location: $WAP"); exit; }
else
{ Header("Location: $WEB"); exit; }

}
?>

[18] Comentário enviado por comfaa em 28/10/2008 - 12:58h

muito legal !!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts