WAP Internet až do mobilu (4. díl)

V minulém čísle jsme se dostali k programování jednoduchých WML stránek. Tento týden se podíváme na další konstruk...


V minulém čísle jsme se dostali k programování jednoduchých WML stránek. Tento
týden se podíváme na další konstrukce ve WML a naše stránky se stanou mnohem
složitějšími.
Obrázek
Ačkoliv jsme již několikrát narazili na existenci obrázků ve WAPu, doposud jsme
se nedostali k jejich tvorbě. Nyní toto opomenutí napravíme. Jak již je známo,
pro obrázky ve WAPu byl zaveden formát WBMP, označovaný jako Wireless Bitmap.
Vkládání obrázků do stránek je jednoduché a je v podstatě stejné, jako v HTML:
Popisek Oba atributy src i alt jsou na rozdíl od HTML povinné. Na rozdíl od HTML také
ve WML nejsou obrázky obtékány textem. Zde bych také upozornil na jedno
specifikum telefonu Nokia 7110. Ten si neporadí s obrázkem, na který je zároveň
nastaven hypertextový odkaz. Například:
 Popisek
Namísto takového obrázku je na telefonu Nokia 7110 zobrazen popisek, uvedený u
atributu alt. Na telefonech Ericsson vše funguje korektně. Při vytváření
obrázků myslete na to, že každý WAP terminál bude mít jinak velký displej. Také
může být nějak omezena maximální velikost obrázků u telefonu Nokia 7110 je to 1
397 bytů.
Programování akcí
Do tvořené WML stránky můžete doplnit kód, který bude uživateli nabízet
provedení určitých akcí přesun na doporučenou stránku, návrat zpět, žádost o
nápovědu, nové načtení stránky nebo potvrzení vložených údajů.
Programování akcí se provádí pomocí elementu do. Ten má povinný atribut type,
který obsahuje typ akce, který chceme nějak ošetřit. Mezi nepovinné atributy
patří label, který obsahuje název akce, jak se bude jevit na displeji telefonu
(ne vždy se tento název uplatní). Dovnitř tohoto elementu se vkládají elementy
další, pomocí kterých je možné akce nějak ošetřit.
Podívejme se na tuto funkci ze dvou pohledů z pohledu akcí a z pohledu možných
reakcí. Začneme možnými typy akcí (výběr):
Bohužel se zde setkáváme se značným rozdílem v implementaci mezi různými
telefony, které souvisejí s uspořádáním a významem jednotlivých tlačítek. U
telefonů Nokia se akce vrácení na předchozí stránku naprogramuje na pravé
kontextové tlačítko. "Odkliknutí" hyperlinku se provádí válečkem. Všechny
ostatní akce se vloží do seznamu, který se zobrazí po stisku levého
kontextového tlačítka. Telefony Ericsson standardně používají tlačítko No
(pravé) pro návrat zpět a levé tlačítko (Yes) pro "odkliknutí" hyperlinku.
Seznam všech uživatelsky naprogramovaných akcí se zobrazí po delším stisknutí
tlačítka Yes.
Ošetřit výše zmíněné akce můžeme pomocí tří elementů.
Pomocí elementu se zajišťuje návrat na předchozí stránku.
Pomocí elementu je možné zajistit přesměrování na jinou
specifikovanou WML stránku.
Pomocí elementu zajistit opětovné načtení stejné stránky.
Nejlépe je fungování elementů vidět na jednoduchém příkladu:

br /> "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum. org/DTD/wml_1.1.xml">








Toto je ukazkovy blok textu, ktery by mel zabrat nekolik radek na dipleji
telefonu


Toto je ukazkovy odkaz




V tomto příkladu se programují 3 akce návrat na předchozí stránku (přiřazeno na
pravé tlačítko Nokie 7110) a 2 obecné akce "Domovská stránka" a "Copyright",
které přesměrují uživatele na uvedenou adresu (a jsou programovány na levé
tlačítko Nokie 7110).
Kvůli telefonům Nokia je dobré, aby se na pravé tlačítko (přesněji řečeno na
akci prev) vždy naprogramovala možnost vrácení na předchozí stránku, která
jinak na těchto telefonech standardně není. Uživatelé telefonů Ericsson budou
mít tuto možnost redundantní.
Ošetření událostí
Podívejme se nyní na události, které mohou ve WML stránkách nastat.
Pro nastavení časového okamžiku, kdy bude spuštěna událost ontimer, se používá
element timer, který se vkládá na začátek karty za počáteční tag card. V
atributu value je třeba specifikovat čas v desetinách sekundy, po jejichž
uplynutí bude událost ontimer aktivována. Pro nastavení časovače na 10 sekund
použijeme příkaz:
Nyní již se dostáváme k tomu, jak je možné událost ošetřit. Jsou dva způsoby a
každý z nich se mírně liší ve funkčnosti.
První možnost se používá pouze v případě, že chcete uživatele v případě výskytu
události přesměrovat na nějakou stránku. V takovém případě uvedete URL této
stránky v počátečním tagu card u atributu, jehož jméno odpovídá jménu události.
Pokud například chcete uživateli zabránit, aby se mohl vrátit na stránku pomocí
tlačítka "Back", provedete to takto:

Druhá možnost je flexibilnější. Provádí se tak, že na začátek karty uvnitř
elementu card uvedete element onevent. V atributu type tohoto elementu se uvede
typ události tak, jak je uveden výše. Uvnitř elementu onevent je možné použít
elementy go, prev a refresh, tak jako to bylo u elementu do. Pokud například
chcete stránku v pravidelných intervalech obnovovat, můžete to udělat takto:



Vzhledem k širším možnostem uplatnění (o kterých si částečně povíme příště)
doporučuji raději používat druhou možnost.
Práce s kartami a s deskami
Doposud jsme pracovali s předpokladem, že na každé stránce je jen jedna karta.
Na jedné stránce ovšem může být karet i více.
Pro skok na jinou kartu než na první je nutné použít URL, kde za názvem stránky
bude uvedeno ještě "#identifikace". Tento identifikátor musí odpovídat názvu
karty, který je uveden u nepovinného atributu id u elementu card. Pokud jde jen
o relativní odkaz uvnitř stránky, stačí jako odkaz uvést samotné
"#identifikace". Tuto funkci demonstrujme na dalším jednoduchém příkladu.

br /> "-//WAPFORUM//DTD WML 1.1// EN""http://www.wapforum. org/DTD/wml_1.1.xml">


WAPCentrum


Racte vstoupit




Vitame noveho uzivatele...




Na první kartě je zobrazen uvítací nápis s odkazem na druhou kartu.
Šablony
Šablony umožňují aplikovat jednotné nastavení akcí (specifikovaných elementem
do) a událostí (specifikovaných elementem onevent) na všechny karty na stránce.
Pokud toho chceme dosáhnout, je třeba za počáteční tag wml (tj. ještě před
první kartu) vložit element template. Do tohoto elementu je třeba vypsat
všechna nastavení do a onevent, která jsou platná pro všechny karty. Za
ukončením elementů template potom začínají jednotlivé karty. Takto by mohl
vypadat fragment kódu, který na všech kartách zajistí akci pro návrat na
předchozí stránku (jak byl problém popsán výše):


Další prvky programování ve WML si osvětlíme zase příště.

0 1152 / pen
Akce ve WML
Typ akceVýznam
prevpožadavek na návrat
na předchozí stránku
optionspožadavek na nastavení
nějakých voleb vhodné
spíše pro skok na nějakou
konkrétní stránku
helppožadavek na nápovědu

Události ve WML
UdálostPopis
ontimerUdálost nastane, když
dojde k vypršení
definovaného
časového okamžiku.
onenterforward
Událost nastane, když
je uživatel na stránku
přesměrován pomocí
elementu go nebo
jiného se stejným
významem.
onenterbackwardUdálost nastane, když
se uživatel na stránku
vrátí zpět pomocí
elementu prev.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.