Chiamata remota ad un server

15 luglio 2012 Sviluppo parser rss tableview titanium xml xmlhttprequest Leave a comment

appcelerator_logo

Effettuare una chiamata remota da un'applicazione realizzata con Appcelerator Titanium Mobile è semplice quanto fare una chiamata ajax con jQuery. Il paragone, basato non a caso sulla similitudine del codice, tende a dimostrare quanto sia semplice effettuare un'operazione simile anche in un'app mobile basata su Titanium. Dopo aver creato un nuovo progetto in Titanium Studio, apriamo il file app.js creato automaticamente dall'IDE e che rappresenta l'entri point della nostra applicazione. Rimuoviamo tutto il contenuto di test e inseriamo il seguente codice:

// create new app window
var win = Ti.UI.createWindow({
	backgroundColor:'#ffffff'
});

// create label to show text
var consoleLabel = Ti.UI.createLabel({
	top		: 0,
	left	: 0,
	font	: {
		fontSize	: 10
	}
});
// add label to window
win.add(label);

// create an instance of HTTPClient
var httpClient = Ti.Network.createHTTPClient();

// define behavior on success -> data loaded
httpClient.onload = function() {
	// 'this' is an implicit object
	// passed by framework to access
	// http response fields
	consoleLabel.text = this.responseText;	
};

// define behavior on error
httpClient.onerror = function(){
	consoleLabel.text = this.status+" - "+this.statusText;
};

// define method and address to call
httpClient.open("GET", "http://www.ansa.it/web/ansait_web_rss_homepage.xml");

// use follow url to test onerror
//httpClient.open("GET", "http://www.ansa.it/web/ansait_web_rss_homepage");

// make the call
httpClient.send();

// show the window
win.open();
Ho usato una label, chiamata 'consoleLabel', per mostrare direttamente nell'emulatore il testo restituito in seguito all'invocazione dell'url. Ho instanziato l'oggetto 'HTTPClient' e ho associato delle funzioni agli eventi 'onload' e 'onerror' i quali si verificano, rispettivamente, in caso di chiamata andata a buon fine e in caso di chiamata terminata con errore. Infine ho definito il metodo http e l'url della risorsa web da raggiungere e ho lanciato la chiamata tramite il metodo send. Ed ecco il testo mostrato nei rispettivi casi di successo e di errore:
Successo Errore
Scarica il codice sorgente di questo esempio direttamente da qui