2013-05-06 6 views
5

Sto utilizzando UIWebView per visualizzare il contenuto testuale nella mia app (memorizzo il contenuto in file locali HTML che impacchetta con l'app). Tutti insieme, ho tre visualizzazioni web di cui cambio il contenuto in modo dinamico in base al feedback degli utenti.UIWebView caricamento e prestazioni generali

Anche se alcuni potrebbero sostenere che questo non è il modo più accettato, trovo UIWebView molto comodo per visualizzare il testo formattato e modificare tale testo utilizzando HTML se necessario. Mentre questo funziona il 99% delle volte, a volte, ho problemi che generalmente rientrano in una di queste categorie:

  1. A volte, il contenuto della visualizzazione Web viene caricato lentamente ed è in ritardo di un secondo circa.
  2. Il contenuto viene caricato ma non viene visualizzato. Tuttavia, purché tocchi la vista (prova a scorrere o qualcosa del genere) il contenuto viene visualizzato.
  3. Alcune volte ho ricevuto avvisi di memoria (in genere non molto tempo dopo il caricamento iniziale dell'app) che non influivano in alcun modo sulle prestazioni di la mia app. Ha registrato l'avviso di memoria ma l'app ha funzionato come se nulla fosse accaduto.

questo è il metodo che uso per caricare il contenuto ai miei viste web:

- (void)loadSimpleDocument:(NSString*)documentName inView:(UIWebView*)webView 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:@"html"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:request]; 
} 

A parte questo, il metodo shouldStartLoadWithRequest delegato è anche implementato, sempre restituire un YES.

La mia domanda è: C'è un modo per migliorare l'affidabilità/le prestazioni delle mie visualizzazioni web (in particolare il caricamento)? C'è qualcosa che ho trascurato, sbagliato o che non conosco?

Alcune informazioni aggiuntive: I am on iOS6 SDK, utilizzare ARC e fare tutto a livello di codice (non utilizzare IB o storyboard).

risposta

2

hai 2 opzioni per controllare quello che sta succedendo:

  • Implementare webViewDidStartLoad & webViewDidFinishLoad metodi delegato per verificare il motivo per cui il contenuto non è visibile (può essere il contenuto non è ancora caricato).

  • leggere il contenuto html su un NSString, quindi utilizzare loadHTMLString:baseURL invece di utilizzare loadRequest e verificare se carica più velocemente.

Spero che questo potrebbe aiutare.

+0

Grazie, guarderò questi! – user1799795