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: 137.319 ]

Por: Fábio Berbert de Paula em 25/10/2003 | Blog: https://youtube.com/c/cotidianohackeado


Criando sua primeira página WML



Use o seu editor de textos predileto para criar o seguinte arquivo, que chamarei de ola.wml:

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
<card id="vivaolinux" title="Viva o Linux">
<p>
Seja bem-vindo ao site Viva o Linux! Espero que tenha gostado do artigo.
</p>
</card>
</wml>

Não tenho pretensões de me estender na sintaxe da linguagem WML neste artigo, para isso existem diversos livros e tutoriais sobre o assunto espalhados pela internet, mas vamos executar uma breve análise sobre o código inserido.

A primeira linha do código define o tipo de documento que está sendo exibido de acordo com as definições do XML. Opa, na verdade isso não está de acordo com XML, isso é XML! :)

As tags <wml> e </wml> delimitam o documento WML. Notou a semelhança com <html> e </html>?

As tags <card> e </card> delimitam o corpo do documento. O conceito de corpo na WML é diferente do conceito da tag BODY da HTML. Num WML podemos ter vários cards que podem ter referências entre si. Somente um card é exibido por vez na tela do aparelho celular, mas uma página não necessariamente precisa ter somente um card. Esse recurso surgiu devido ao fato de termos um limite muito pequeno de informação que pode ser exibida na tela do aparelho celular de uma só vez.

Quem está habituado ao HTML nem precisa se esforçar muito para entender a página mostrada na tela né? Bom, WML é isso, não existem mistérios. No final do artigo publico algumas referências para documentação sobre a linguagem.
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

O Linux e o Star Office

Como criar VIEWS no MySQL

Interfaces Gráficas no Linux

tzwatch - Navegando pelo horário mundial no Debian

Resumo do VOL DAY I

Leitura recomendada

Google Chart: Criando gráficos dinâmicos em minutos

Debugando aplicações PHP com Xdebug e Eclipse PDT

Utilizando o Smarty template no PHP

Criando Virtual Host no Apache: simples assim

Usando classes em conexão e consultas à banco de dados 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 [email protected] 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