Dans le cadre de mon cours de Developping Mobile Applications, j’ai eu l’occasion d’expérimenter la programmation de sites WAP en quelques TP. Sont passés en revue, entre autres, le WMLS, l’intégration PHP/WML, la redirection HTML/WML, l’envoi de SMS/MMS en console etc. Allez visiter la liste des TP ainsi que ma page.
Quelques exemples :
-
<script language="php">
-
$accept = $_SERVER[‘HTTP_ACCEPT’];
-
$pos =
strpos($accept,
"text/vnd.wap.wml");
-
$wml = ($pos === 0 | $pos > 0 );
-
if( $wml ) {
-
header(‘Content-type: text/vnd.wap.wml’);
-
echo ‘<?xml version="1.0" ?>’;
-
echo ‘<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
-
"http://www.wapforum.org/DTD/wml13.dtd">’;
-
echo ‘<wml><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head>
-
<card title="Dynamic">
-
<p>Ahh, a WML surfer!</p>
-
</card>
-
</wml>’;
-
} else {
-
header(‘Content-type: text/html’);
-
echo ‘<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">’;
-
echo ‘</ccode><code><html>
-
<head> <title>Dynamic</title> </head>
-
<body>
-
<p>Ahh, an HTML surfer!</p>
-
</body>
-
</html></code><ccode(php3)>’;
-
}
-
</script>
Le code ci-dessus parcourt les formats acceptés par le navigateur courant et détecte la possibilité d’interpréter le WML ou non.
-
<?xml version="1.0" ?>
-
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
-
"http://www.wapforum.org/DTD/wml13.dtd">
-
<wml>
-
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head>
-
<template>
-
<do type ="home1" label="Home">
-
<go href="index.wml"/>
-
</do>
-
<do type="lab2" label="Lab2">
-
<go href="index.wml#lab2"/>
-
</do>
-
</template>
-
<card id="bet" title=’Online gambling’>
-
<p>Type your bet here: <input emptyok="false" maxlength="3" type="text" title="SEK" format="*N" name="betval"/></p>
-
<p><a href="bet.wmls#displayalert($betval)">Validate</a></p>
-
</card>
-
<card id="betok" title=’Bet accepted’>
-
<p>Ok. Your bet was $betvalok</p>
-
</card>
-
</wml>
-
-
Le code ci-dessus utilise les champs (en forçant le type à "entiers" avec *N) et le WMLS :
-
<blockquote>
-
extern function displayalert(val){
-
Dialogs.alert("Do you confirm this bet?");
-
WMLBrowser.refresh();
-
WMLBrowser.setVar("betvalok", val);
-
WMLBrowser.go("bet.wml#betok");
-
}</blockquote>
-
Pour les codes sources précis, ou pour avoir la version de PHPIcalendar modifiée pour le WAP, contactez-moi !
A voir aussi, notre projet (avec Gabriele Violino) : sondage par SMS avec utilisation du WAP-PUSH. Au programme : détection du modèle et de la marque d’un mobile via l’UAProf, envoi de SMS-Push via la gateway NowSMS (avec explications sur le codage en hexa d’un message Push, ie. l’encapsulation WBXML, WSP, WDP, SMS), sondage en XHTML-MP, WML et HTML (le bon format est choisi directement via l’UAProf du mobile)… Les données sont stockées dans une base de données MySQL.
L’archive avec le code source et les slides est librement téléchargeable sur notre DokuWiki.
February 26th, 2007 | Tags: codage, KTH, PHP, Telephone, WML |
Category:
Articles en français,
Tech >> Computer |
Leave a comment