Nel nostro ottavo tutorial “Creiamo un Browser”, abbiamo visto come creare un semplice browser, il quale, non fa altro che caricare una pagina di un sito web in una UIWebView presente nella nostra applicazione. In questo caso, quindi, sfruttiamo delle pagine presenti in rete, con l’evidente svantaggio di ottenere una pagina vuota, o comunque un errore, in assenza di connettività.
Poniamo invece il caso di aver la necessità di caricare nella nostra app il contenuto di un documento HTML presente all’interno della nostra applicazione, in locale quindi. In questo caso non avremmo bisogno di connettività e la pagina sarebbe sempre disponibile.
Ma come potremmo sfruttare una pagina in locale? A cosa può servirci? Certo non ci servirà affatto se stiamo progettando e costruendo un Browser alternativo a quello nativo di iPhone. Immaginate invece di voler inserire del testo in un programma. Usando un oggetto di tipo UITextView avremo sicuramente dei limiti ad esempio nella formattazione del testo. Ecco quindi come potrebbe tornarci utile usare una webView collegata ad una pagina HTML locale, al posto di una semplice casella di testo. In questo caso, infatti, potremmo formattare il nostro testo come meglio crediamo e non solo, essendo di fatto una pagina HTML, potremmo inserire al suo interno tutto quello che vogliamo.
Per fare questo non dobbiamo far altro che dichiarare nel file .h un oggetto di tipo UIWebView, nel nostro caso chiamato “webView”, e le sue property, collegarlo eventualmente, via Interface Builder, ad un oggetto UIWebView dell’interfaccia utente e utilizzare dove meglio crediamo queste poche righe di codice:
NSString *dataFilePath = [[NSBundle mainBundle] pathForResource:@"nomeFile" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:dataFilePath isDirectory:NO];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Abbiamo diviso il codice in più istruzioni per maggiore chiarezza, nulla ci vieta, però, di utilizzarne una unica:
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"nomeFile" ofType:@"html"]isDirectory:NO]]];












5 Responses to “TIPS#002 – Caricare il contenuto di un file HTML locale in una UIWebView”
3 Aprile 2010
Angelsalve! come mai la libreri cfnetwork causa dei leak appena alloco una uiwebview?
22 Novembre 2010
cippola guida è abbastanza chiara, ma devo capire ancora una cosa.
come si fa ad aggiungere il file nomefile.html al progetto per farglielo aprire su ogni device?
una specie di cartella www in cui caricare tutta la propria web app identificabile con www/nomefile.html
come si fa?
grazie
26 Ottobre 2011
LucaCippo devi semplicemente crearti il file .html con un qualsiasi editor di testo e importarlo nella cartella del progetto!
23 Marzo 2012
PastInteressante: non si potrebbe avere un file sorgente? Grazie mille
2 Ottobre 2012
mauriziociao, se devo caricare un file locale uso:
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@”index” ofType:@”html”]isDirectory:NO]]];
ma se devi caricare il file locale index.html#paragrafo2?????
come dovrei fare?
grazie