Veniamo alla parte finale della serie di post, il cuore del progetto sostanzialmente, ossia come trattare il contenuto a seconda che la richiesta provenga da un dispositivo che comprende WML o XHTML.
Nel primo articolo avevamo introdotto in maniera generale come procedere, indicando la tecnologia usata. Nel secondo avevamo costruito un pannello di controllo dell’amministratore per aggiungere/rimuovere ristoranti.
Sostanzialmente il problema in questo settore di sviluppo (che non abbiamo trattato nel progetto in quanto una simulazione) è, come già accennato nel primo articolo, la vasta gamma di dispositivi sul mercato, ciascuno con il suo useragent distinto. Banalmente nella index del sito abbiamo messo uno script che si occupa del riconoscimento del dispositivo estrapolando la parte relativa al sistema operativo.
Nel progetto abbiamo usato OpenWave per simulare i dispositivi con il solo supporto di WML e abbiamo abbandonato Windows Mobile Emulator in quanto, con tutto il rispetto, dava i “numeri”: forse siamo stati sfortunati noi ma per la medesima pagina un momento la caricava, un altro no…Non sarebbe stato carino fare un “flop” all’esame per colpa di un emulatore no? :-D
Quindi il palmare è stato simulato usando lo useragent di Windows Mobile Pocket PC tramite un’estensione classica di Firefox e il display ridotto tramite Web developer, giocando con il bottoncino delle risoluzioni e impostandola a 240 x 320 (che dovrebbero essere quelle reali). In buona sostanza ringrazio Chris Pederick, creatore di entrambe le due ottime estensioni.

Veniamo agli script:

  • intercettiamo lo useragent del client e a seconda del dispositivo impostiamo a dovere un valore dell’array superglobale $_SESSION;
  • per le pagine statiche usiamo dei files XML già preparati,per le pagine dinamiche (dove preleviamo i dati dal database) generiamo i files XML dinamicamente con PHP;
  • Presentiamo il documento effettuando la corretta trasformazione tramite XSL. Per associare il corretto foglio di stile ci serviamo del valore salvato in precedenza nell’array di sessione;

Questo è quanto, vi sarà tutto più chiaro una volta che osservate gli scripts.

Download: Costruzione siti Web per dispositivi mobili: part III

Scritto da: VooDoo

Dai visibilità al problema: