WAP/WML, grunder och på Algonet

Innehåller några grundläggande tips som har testats på Algonet.
Började skriva detta i början av år 2000 samtidigt som jag testade och lärde mig. Det var då svårt att hitta lämpliga länkar för att få ytterligare grunder. Nu har jag lagt till ett avsnitt om Wap ooch PHP och har sett över länkarna - vill gärna ha tips om fler! Har utan problem flytta sidorna till webbhotellet Oderland & Co

Allmänt

Döda länkar borttagna sept 2004

Mer information finns på utvecklingssidorna hos Nokia (gå till Technologies, Browsing/WAP) Ericsson (med Mobility World) och Openwave som gemensamt startat en föregångare till nuvarande The Open Mobile Alliance Ltd.. WAP 1.0 kom våren 1998 och i slutet av år 1999 hade man över 90 medlemsföretag inom alla berörda områden. Dessutom finns en hel del att läsa, sök själv! Har samlat ett axplock här:

Svenska länkar: Annika Tigers kort introduktion!, PC för allas Så gör du en egen WAP-tjänst, WML 1.1 guiden och Wapmatic FAQ.

Tutorials: W3Schools, Free Webmaster Help.com, WBMP converter: Teraflops Computing LTD m fl.

Tips: leta efter länksidor "wap links" "wap turorials" "wap emulators" som Wapjag etc med din favoritsökmotor! Numera finns en uppsjö sidor av olika slag ...

WML - Grunder

Fakta i avsnittet kommer från developer.com: WAP Design Rules av John Maxwell Hobbs

WAP baseras på/liknar HTTP, UDP, URL och HTML. En vanlig webbserver med rätt MIME-typer kan leverera WML-filer (= Wireless Markup Language, WAP's motsvarighet till HTML och mer direkt baserat på XML). En gateway mellan Internet och GSM-nätet fungerar som proxy och kodar WAP-data som binärkod för att spara bandvidd.

WMLScript baseras på ECMAScript, i sin tur baserat på JavaScript.

WML-filerna består av kort (cards), som ska kunna visas på en liten skärm, lagda i en bunt (deck), filen som skickas. Bunten kan innehålla alltifrån ett kort till komplexa tjänster. Exempel nedan är skapade med Ericsson WAP Integrated Development Environment (gratis från Ericsson's WAP Developer's Zone).

Bunt med ett kort - utan interaktivitet:
<?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="first" title="First WAP">
        <p>
               
Hello World!
        </p>
    </card>
</wml>
Här har jag börjat på en tabell med WML och HTML-taggar och ungerfärlig jämförelse dem emellan. Behöver "mogna"! Se också t ex WAPtastic WML Guide.
WML HTML Kommentar
<wml> </wml> <html> </html> Börjar/avlutar bunt/sida
<card> </card> <body> </body> Omsluter kort/text
<p> </p> <p> </p> Obligatoriskt i WML
<do> </do> Startar händelse när man t ex trycker på knapp
<go> </go> Navigerar till ny URI
<do> definierar resultatet av växelverkan med med kortet. Denna gång hur "accept"-knappen uppför sig - gå till kortet med id "second". Kunde lika gärna vänta på inmatning för att eller This could just as easily be a URL that goes to another card defined by user input or a URL on the network that delivers another deck. Se exempel 2:
<?xml version="1.0" encoding="ISO-8859-1"?>
<"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml id="myDeck" class="HelloWorld">
    <card id="first" title="Second WAP" newcontext="true">
        <p>
      Hello
        <do type="accept">
            <go href="#second">
            </go>
        </do>
        </p>
    </card>
    <card id="second" title="Second WAP">
        <p>
  World!
        </p>
    </card>
</wml>

<newcontext>, which is contained within the <card> tag. <newcontext> initializes all variables and event bindings such as "do" that may have been established by previous cards. <template> mall ett kraftfullt sätt att binda en händelse till alla kort i en bunt i st f att göra det till varje kort.

Exempel 3 kombinerar både inre och yttre länkar.

<?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 id="chooseDeck" class="select">

        <template>
                <do type="prev">
                        <noop/>
                </do>
        </template>
        
        <card id="selection" title="Menu" newcontext="true">
                <p>
                <b>Select Option</b><br/>
                <a href="hello-1.wml">1st example</a><br/>
                <a href="hello-2.wml">2nd example</a><br/>
                <a href="#caps">Caps</a><br/>
                </p>
        </card>

    <card id="caps" title="CAPS">

        <p id="caps" align="center">
                HELLO WORLD!
        <br/>

            <a id="back" href="#selection" title="Menu">
            Menu</a>
        </p>
    </card>
</wml>

<template>-funktionen används här för att kontrollera hur "prev"-händelsen fungerar i bunten. I de andra buntarna fungerar "prev" normalt

Eftersom WAP använder Internets adressmodell med URIer, kan en CGI som fungerar med HTML användas med WML med bara små förändringar. Flera bra exempel kring WMI-CGI finns i Ericsson IDE.

Enligt Combras faq gäller:

Content
MIME type Extension
-------------------------------------------------------------
WML source          text/vnd.wap.wml               wml
Compiled WML        Application/vnd.wap.wmlc       wmlc
WMLScript source    text/vnd.wap.wmlscript         wmls
Compiled WMLScript  Application/vnd.wap.wmlscriptc wmlsc
Wireless bitmap     image/vnd.wap.wbmp             wbmp

Validering _Nytt_

När man nu knåpat ihop sina wap-buntar vill man ju att de ska ses felfritt i telefoner och emulatorer. Då använder man en validator t ex Validome. Har man alltför grundläggande fel är det lite deprimerande att validatorn vägrar titta på innehållet innan rätta rader finns med ...

WAP-sidor på Algonet

Mathias Axelsson har meddelat att webmaster nu (2 feb -00) lagt in följande MIME typer på webservrarna:

image/vnd.wap.wbmp              wbmp
text/vnd.wap.wml                wml

Bo Bjärdahlen har lagt in alla MIME typer i en egen .htaccess fil i public_html-katalogen. Filen skall då innehålla följande:

AddType text/vnd.wap.wml wml
AddType application/vnd.wap.wmlc htm
AddType text/vnd.wap.wmls wmls
AddType application/vnd.wap.wmlscriptc wmlsc
AddType image/vnd.wap.wbmp wbmp

Har man nytta av de övriga typerna på Algonet och i så fall hur?

Själv har jag testat en wap-emulator, som är enklare att installera än utvecklingspaketen, WinWap Browser. Gelon WAPalizer och samling med länkar!. Dessutom kan man behöva en bildkonverterare, t ex pic2wbmp. Som praktikfall har jag åt en förening skapat en bunt wappy.to/fmhw som också fungerar i WinWap Browser. Nu ska jag leta efter en validator för att kolla koden lite bättre ;-) 8 feb -99: fungerar inte i Nokia 7110 telefon. Det troliga problemet är ett för stor 'deck'. Det lär finnas en magisk gräns på cirkus 1400 bytes ...

Wap och PHP

Algonet har nu installerat PHP. Har letat fram uppgifter om hur man kör PHP på sina buntar. Hittar två problem: PHP skickar 'Content-type: ' header (text/html). Ska vara 'text/vnd.wap.wml'. Dessutom snubblar PHP på xml-taggarna (<?xml version="1.0"?>) om man inte stänger av korta starttaggen "<?" vid installation (--disable-short-tags) eller i php.ini.

Detta kringgår man genom att börja filen med php-kod:

<?php
header ('Content-type: text/vnd.wap.wml');
print ("<?xml version=\"1.0\"  
encoding="ISO-8859-1"?>");
?>
Man samlar lämpligen sina wap-sidor i separat katalog. I .htaccess anger man filtyp(er) som ska tolkas med php:
AddType application/x-httpd-php .wml .php

Man kan alltså ersätta AddType text/vnd.wap.wml wml med ovanstående om man vill att alla wml-filer ska tolkas via php.

Efterlyser

Någon som vet hur riktiga WAP-telefoner visar innehållet. De virtuella telefonerna i utvecklingspaketen verkar vara bättre på tabeller, teckenformatering mm än de riktiga?!!?


Sidan besökt  13027 gånger sedan 24 jan 2000.

Åter hemsidan

Se också sidor om:

Error robot   Skapa anpassade felmeddelanden (bättre kolla fellogg)
Mailman   Program för e-postlistor  _Nytt!_ Använder jag till nyhetsbrev
PHP   Tester med PHP på Algonet  
SSH   Secure shell - bättre än Telnet  
XSSI   Extended Server Side Includes Anpassar för datum, webbläsare mm
Allmänt   Tekniska grunder Varför sidorna flyttats till Oderland & Co
    Titta gärna in hos Folkmusikhuset i Stockholm

Kontakta Arne Kjellman arnek@sverige.nu
Uppdaterad 2004-09-15

Valid
   HTML 4.01! Visas bäst med Valfri web-läsare
Server 91.201.60.12