mercoledì 17 luglio 2013

Tutorial 4 - Come funziona e come sfruttare il componente WEB

Il componente"Web" e ci permette di ricevere dati tramite HTTP GET o HTTP POST nella nostra applicazione.

Questo vuol dire che ogni pagina internet, server web, etc... potrà essere "interrogato" dalla nostra app e potremo avere a disposizione questi dati all'interno di app inventor.




Usando questo elemento sarà possibile ad esempio costruire un app che visualizzi le previsioni del tempo, le informazioni di borsa, le estrazioni del superenalotto e chi più ne ha più ne metta!

Per facilitare le cose dovremmo trovare una sorgente web che ritorni i risultati idealmente in CSV, ma con qualche lavoro extra sarà possibile leggere anche feed RSS o file XML.




Guardate il video dove ho creato una semplice applicazione che usa yahoo finance per controllare i valori di una azione del mercato azionario.




Vi riporto per comodità l'url che do in pasto al componente web1.url http://download.finance.yahoo.com/d/quotes.csv?f=nl1p2&s= a cui poi dovete aggiungere il nome del simbolo (di borsa) da cercare, come per esempio "eni.mi" o "goog" Dopo che l'app ha ricevuto la risposta dal server web, viene generato l'evento Web1.GotText e nella variabile responseContent avrò il contenuto in format testuale della pagina html richiesta Quindi nel caso dell'esempio del video il valore ritornato sarà ad esempio:

FTSE MIB",15695.030,"+1.06%"

ovvero le informazioni riguardanti il titolo di borsa in formato .csv Per finire vediamo brevemente l'help di google (tradotto da me in italiano) del componente Web

Properties

ResponseFileName
Il nome del file che vogliamo salvare (se decidiamo di salvarlo) dopo aver invocato Web1.Get
SaveResponse
Flag per indicare se vogliamo salvare la risposta in un file o no
Url
L'URL della richiesta web.

Events

GotFile(text url, number responseCode, text responseType, text fileName)
Evento che indica che la richiesta ha terminato il suo lavoro
Se responseCode è 200 allora la risposta è ok (e viene salvata su file il risultato)
GotText(text url, number responseCode, text responseType, text responseContent)
Evento che indica che la richiesta ha terminato il suo lavoro
Se responseCode è 200 allora la risposta è ok (e responseContent contiene la risposta stessa)

Methods


Get()
Esegue un HTTP GET usando la proprietà URL e riceve la risposta.
Se SaveResponse è vero la risposta viene salvata in un file e l'evento GotFile è triggherato.
ResponseFileName può essere usato per specificare il nome del file.
Se SaveResponse è falso allora viene triggherato l'evento GotTextiggered.
text HtmlTextDecode(text htmlText)
Decodifica l'HTML , i caratteri e le entità HTML come &, <, >, ', and " sono cambiate in &, <, >, ', and ".
text JsonTextDecode(text jsonText)
Decodifica il valore JSON ritornato. Se il testo JSON ha le virgolette, queste vengono rimosse.
PostFile(text path)
Esegue una richiesta HTTP POST usando la proprietà Url e i dati dal file specificato, e riceve la risposta. Se SaveResponse è vero, la risposta verrà salvata in un file e levento GotFile verra triggherato. La proprietà ResponseFileName può essere usata per specificare il nome del file. Se SaveResponse è falso, allora verrà triggherato l'evento GotText
PostText(text text, text encoding)
Esegue una richiesta HTTP POST usando la proprietà Url e il testo specificato, e riceve la risposta.
Se SaveResponse è vero, la risposta verrà salvata in un file e levento GotFile verra triggherato. La proprietà ResponseFileName può essere usata per specificare il nome del file.
Se SaveResponse è falso, allora verrà triggherato l'evento GotText
text UriEncode(text text)
Codifica il testo fornito in modo che possa essere utilizzato in un URL.


E infine eccovi l'apk e il progetto della nostra applicazione:

Progetto
Applicazione (APK)

2 commenti:

  1. Perchè usi un clock? Non è più semplice fare questo subito dopo il settaggio della label 3?!

    RispondiElimina
  2. Ciao, ho una domanda da farti, se voglio usare la featurecollection con file geojson con qualsiasi convertitore da file shape mi da continuamente errore, Quali sono le caratteristiche del file Geojson? non ho trovato da nessuna parte. per esportazione in geojson ho usato Qgis

    RispondiElimina