helyoWAP |
|
TUTORIAL
WML |
Autor: Helio Fonseca Rosa
Esta página contém muitas figuras. Aguarde a carga se a conexão estiver lenta
Programas: phone3.wml e phone4.wml
Objetivo:
Exibir uma seqüência de telas contendo previsões de temperatura para HOJE
(terça-feira, por exemplo), QUARTA e QUINTA. Cada tela conduz à próxima.
O programa que exibe as telas é o phone3.wml,
constituído de um deck contendo três cards, um para cada tela.
A partir de cada tela pode-se desviar para a tela que contém a data do próximo
eclipse lunar. Esta é exibida pelo programa phone4.wml
e permite o retorno à primeira tela ("HOJE").
As telas são as seguintes:
[Telas correspondentes ao programa phone3.wml]
[Tela correspondente ao programa phone4.wml]
Inicialmente, vamos exibir os dois
programas que produzem as telas solicitadas. Em seguida, vamos dividir os
programa phone3.wml em três partes, testá-las de
modo independente e comentá-las.
Um bom exercício preliminar é estudar e tentar entender estas listagens antes
de ler os comentários.
phone3.wml (código):
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="options" label="Lua">
<go href="phone4.wml"/>
</do>
</template>
<card id="hoje">
<do type="accept" label="Quarta">
<go href="#quarta"/>
</do>
<p align="center">
<b> ** helyoMOBILE
**</b><br/>
</p>
<p align="center">
HOJE <br/>
Max: 40 <br/>
Min: 37
</p>
</card >
<card id="quarta">
<do type="accept" label="Quinta">
<go href="#quinta"/>
</do>
<p align="center">
<b>** helyoMOBILE
**<br/></b>
</p>
<p align="center">
QUARTA
<br/>
Max: 41
<br/>
Min: 38
</p>
</card>
<card id="quinta">
<p align="center">
<b>** helyoMOBILE **<br/></b>
</p>
<p align="center">
QUINTA <br/>
Max: 29 <br/>
Min: 28
</p>
</card>
</wml>
Para conferência, o autor
copiou/colou a listagem acima no "Bloco de Notas" do Windows, o que
cancela qualquer tipo de formatação anterior. Em seguida, alinhou todas as
linhas à esquerda (o processo de copiar/colar pode trazer algum código espúrio,
não visível). Após, gravou o programa como phone3.wml.
Neste processo, o "Bloco de Notas" , automaticamente, mudou a extensão
para phone3.wml.txt!!! . Utilizando o Windows
Explorer (recomendado nestes casos) o arquivo foi renomeado para phone3.wml.
Em seguida foi testado com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone3.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.
phone4.wml (código):
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<do type="accept" label="Hoje">
<go href="phone3.wml"/>
</do>
<p align="center">
<b> **
helyoMOBILE **</b><br/><br/>
<img alt="[lua]"
localsrc="moon2" src=""/><br/>
</p>
<p align="center">
Proximo eclipse lunar:
15/mai/2001
</p>
</card>
</wml>
Vale repetir.
Para conferência, o autor copiou/colou a listagem acima no "Bloco de
Notas" do Windows, o que cancela qualquer tipo de formatação anterior. Em
seguida, alinhou todas as linhas à esquerda (o processo de copiar/colar pode
trazer algum código espúrio, não visível). Após, gravou o
programa como phone4.wml. Neste processo, o
"Bloco de Notas" , automaticamente, mudou a extensão para phone4.wml.txt!!!
. Utilizando o Windows Explorer (recomendado nestes casos) o arquivo foi
renomeado para phone3.wml. Em seguida foi testado
com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone4.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.
Vamos exibir o trecho de programa que produz a primeira tela (faremos o mesmo com as demais telas).
phone3a.wml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="options" label="Lua">
<go href="phone4.wml"/>
</do>
</template>
<card id="hoje">
<do type="accept" label="Quarta">
<go href="#quarta"/>
</do>
<p align="center">
<b> ** helyoMOBILE
**</b><br/>
</p>
<p align="center">
HOJE <br/>
Max: 40 <br/>
Min: 37
</p>
</card >
</wml>
Nota: Foi acrescentada a tag </wml>, para "fechar" a listagem e permitir o teste.
Para teste, o autor gravou este
programa em seu micro como phone3a.wml. Fica a
sugestão.
Este programa também está disponível na WEB em http://sites.uol.com.br/helyomobile/wml/phone3a.wml.
Comentários:
Observe as tags <template> </template>
: elas não pertencem à nenhum card; isto significa que o seu conteúdo é
"geral" e que seu efeito se produz na âmbito do deck e não somente
dentro de um card, ou seja, seu efeito é válido para todos os três
cards do programa (este que está sendo mostrado e os próximos). O seu conteúdo
atribui um label à tecla "OPTIONS" (à direita, em oposição
à tecla "ACCEPT") que produzirá um desvio para o outro DECK
associado à este (programa phone4.wml).
Compare esta programação da tecla "OPTIONS" , que faz um
desvio para outro deck, com a da tecla "ACCEPT" do
programa anterior (phone3.wml), que desviava para
um card.
Veremos mais adiante que a especificação "geral" proporcionada por
<template> pode ser redefinida dentro de qualquer card sempre que necessário.
Assim, template é um molde ou modelo comum à vários
cards.
Antes de prosseguirmos, vejamos
alguns termos encontrados na literatura técnica sobre as tags:
<card> - a palavra card está entre os sinais de
"menor" e "maior" ("angle brackets");
<card> - esta é a tag inicial ("start tag")
do elemento card;
</card> - esta é a tag final ("end tag") do elemento
card;
<br/> - esta é uma tag de um elemento
isolado ou vazio ("empty");
<card> Primeiro texto</card> - "Primeiro texto" é o
conteúdo ("content") do elemento card;
<card id="um" title="Primeiro"> -
"id" e "title" são atributos ("attributes") do
elemento card.
Vamos observar o
"interior" ou conteúdo ("content") do <card
id="hoje"> : os comandos associados "do"
e "go" atribuem o label "Quarta" à tecla
"ACCEPT" que produzirá um desvio para o <card
id="quarta">. Note-se também que o texto da tela está contido
em dois parágrafos diferentes. E que usamos as tags <b> </b>
para "negritar" (bold) a primeira linha da tela.
Esta tags pertencem ao conjunto de tags destinadas à formatação
dos textos a serem exibidos nas telas dos simuladores e celulares.
Eis o conjunto completo:
<em></em>
- exibir com ênfase;
<strong></strong> - exibir com forte ênfase;
<i></i>
- exibir em formato itálico;
<b></b>
- exibir em negrito;
<u></u>
- exibir o texto sublinhado ("underlined");
<big></big>
- exibir com tipos grandes;
<small></small> - exibir
com tipos pequenos;
Os simuladores e celulares
apresentam respostas diferentes à estas tags. Recomenda-se, de um modo geral,
utilizar <strong> e <em> e não usar <b> e
<i> (não encontrei justificativa técnica para esta recomendação).
Numa aplicação real é preciso verificar como os celulares do mercado
respondem à estas tags.
Comece testando em seus simuladores:
Exercício:
Copie/cole o programa acima no seu processador textos.
Acrescente mais um parágrafo e copie/cole o trecho abaixo (colocando-o entre
tags <p> e </p>):
Texto nao formatado.
<em> Texto com enfase</em><br/>
<strong>Com forte enfase</strong><br/>
<i>Formato italico</i><br/>
<b>Texto em negrito</b><br/>
<u>Texto sublinhado</u><br/>
<big>Tipos grandes</big><br/>
<small>Tipos pequenos</small>
Salve o arquivo com extensão .wml (por
exemplo, exercicio3.wml) com opção "somente texto" e veja o
resultado no simulador.
Procure deixar na tela do micro, em planos diferentes, o processador de
textos e o simulador.
Maximize também a janela "Phone Information" e veja como fica fácil
testar e fazer correções em seus programas.
Votando aos comentários sobre o programa.
Atenção para a diferença de sintaxe dos desvios :
- desviar para outro deck ---> <go
href="phone4.wml"/>
- desviar para outro card ---> <go
href="#quarta"/>
Neste caso, não existe a tag de fechamento
</go>; foi substituida pela barra "/" no final do
comando.
Vamos estudar o segundo trecho do programa. Abaixo, à esquerda, está a tela desejada, proporcionada pelo programa phone3.wml completo. E à direita, está a tela produzida pelo trecho escolhido. A diferença é o label "Lua" (rodapé da tela, rótulo da "softkey" OPTIONS).
Vejamos o código que a produziu (estamos acrescentando as três linha iniciais e as tags <wml> </wml> para testar este trecho separadamente) .
phone3b.wml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="quarta">
<do type="accept" label="Quinta">
<go href="#quinta"/>
</do>
<p align="center">
<b>** helyoMOBILE **</b><br/>
</p>
<p align="center">
QUARTA <br/>
Max: 41 <br/>
Min: 38
</p>
</card>
</wml>
Para teste, o autor gravou este
programa em seu micro como phone3b.wml. Fica a
sugestão.
Este programa também está disponível na WEB em http://sites.uol.com.br/helyomobile/wml/phone3b.wml.
Comentários:
Dentro deste card programamos de novo a tecla "ACCEPT" atribuindo-lhe
o label "Quinta" para desviar para o
<card id="quinta">.
Notar que o label "Lua" não
consta desta tela. Como você se lembra, a tecla "OPTIONS" foi
programada dentro do "template" . E a intrução <template> não
constou deste trecho de programa. Uma pequena complicação para estimular o
entendimento desta instrução.
Vamos estudar o terceiro trecho do programa. Abaixo, à esquerda, está a tela desejada, proporcionada pelo programa phone3.wml completo. E à direita, está a tela produzida pelo trecho escolhido. A diferença, novamente, é o label "Lua".
Vejamos o código que a produziu (estamos acrescentando as três linha iniciais e as tags <wml> </wml> para testar este trecho separadamente) .
phone3c.wml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="quinta">
<p align="center">
<b>** helyoMOBILE **</b><br/>
</p>
<p align="center">
QUINTA <br/>
Max: 29 <br/>
Min: 28
</p>
</card>
</wml>
Para teste, o autor gravou este
programa em seu micro como phone3c.wml. Fica a
sugestão.
Este programa também está disponível na WEB em http://sites.uol.com.br/helyomobile/wml/phone3c.wml.
Comentários:
Neste card não há programação de teclas. Por "default" ( ou omissão
ou ausência de programação) a tecla "ACCEPT" recebe o label "Back",
acrescentado automaticamente pelo simulador; esta tecla permite o retorno
ao card anterior; este procedimento não foi previsto no "Objetivo"
mas vamos deixar como está, por enquanto. A tecla "BACK" do teclado
do simulador (ao lado da tecla "CLR") permite o retorno aos cards
anteriores (veremos isto mais adiante).
Programa phone4.wml
No "Objetivo" vimos que para complementar o programa anterior, desejamos obter uma tela sobre o eclipse lunar com uma pequena figura representando a lua; a tecla "ACCEPT" deverá exibir o label "Hoje".
phone4.wml (código):
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
" http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<do type="accept" label="Hoje">
<go href="phone3.wml"/>
</do>
<p align="center">
<b> **
helyoMOBILE **</b><br/><br/>
<img alt="[lua]"
localsrc="moon2" src=""/><br/>
</p>
<p align="center">
Proximo eclipse lunar:
15/mai/2001
</p>
</card>
</wml>
Não é demais repetir:
Para conferência, o autor copiou/colou a listagem acima no "Bloco de
Notas" do Windows, o que cancela qualquer tipo de formatação anterior. Em
seguida, alinhou todas as linhas à esquerda (o processo de copiar/colar pode
trazer algum código espúrio, não visível). Após, gravou o
programa como phone4.wml. Neste processo, o
"Bloco de Notas" , automaticamente, mudou a extensão para phone4.wml.txt!!!
. Utilizando o Windows Explorer (recomendado nestes casos) o arquivo foi
renomeado para phone4.wml. Em seguida foi testado
com êxito no OWG1 Simulator.
O leitor pode utilizar um simulador ou um celular WAP para acessar este programa
no seguinte endereço da WEB:
http://sites.uol.com.br/helyomobile/wml/phone4.wml
. As telas poderão ter uma aparência diferente, dependo das características técnicas
do simulador ou celular utilizado.
Este programa é um deck de um
card. Há uma programação da tecla "ACCEPT" que recebe o label
"Hoje" e executa o desvio para o programa anterior, phone3.wml
(que ao ser aberto exibe o primeiro card do phone3.wml
(<card id="hoje">).
O comando que inclui a figura é: <img alt="[lua]" localsrc="moon2"
src=""/>.
Atenção: esta sintaxe é válida apenas para o OWG1 Simulator. O resultado em
outro simulador é imprevisível. O autor não conferiu se esta sintaxe é
valida para celulares reais com software da Phone.com.
O atributo "alt"
é obrigatório e contém a palavra ou mensagem que será mostrada se o
simulador ou celular não puder exibir a figura; "src" deve
conter o endereço da figura e não será considerado se a figura for um ícone
válido contido na memória da simulador ou celular com software da Openwave.
Na documentação do SDK da Openwave ("WML Language Reference")
encontramos na descrição do atributo "img" a relação destes
ícones, mostrada parcialmente abaixo (deve-se usar o nome e não o número do
ícone):
Lembrando: Estas figuras são
exibidas apenas com software da Openwave.
As figuras no formato WBMP ("Wireless Bitmap") padronizadas pelo WAP
serão estudadas na seção Coloque
uma figura WBMP na sua mini-page .
Exercício:
Copie/cole o programa acima no seu processador textos.
Retire o comando de impressão da imagem. Coloque em seu lugar um título
centralizado, de sua preferência.
Se você já domina a utilização de imagem no formato WBMP, faça a inclusão
de uma para teste.
Salve o arquivo com extensão .wml (por exemplo, exercicio4.wml) com opção
"somente texto" e veja o resultado no simulador.
Procure deixar na tela do micro, em planos diferentes, o processador de
textos e o simulador.
Maximize também a janela "Phone Information" e veja como fica fácil
testar e fazer correções em seus programas.