Come posso utilizzare UIWebView in Xcode in modo che quando carica pagine non FAI scaricare le immagini (per causare una pagina di caricamento più veloce)?iPhone SDK: UIWebView per interrompere le immagini dal caricamento/download
risposta
UIWebView
è una pallida, povera piccola ombra del completo WebView
di WebKit, per cui è facile. -webView:shouldStartLoadWithRequest:navigationType:
viene chiamato solo per la navigazione. Non viene chiamato per ogni richiesta come WebPolicyDelegate
su mac. Con UIWebView
, ecco come vorrei attaccare questo problema:
Implementare -webView:shouldStartLoadWithRequest:navigationType:
e impostarlo per restituire sempre NO
. Ma dovrai anche rispondere e generare un NSURLConnection
. Quando lo NSURLConnection
termina il recupero dei dati, lo esaminerai per eventuali tag IMG e li modificherai in qualsiasi segnaposto desideri. Quindi caricherete la stringa risultante nello UIWebView
utilizzando -loadHTMLString:baseURL:
.
Ovviamente l'analisi dell'HTML non è un compito banale su iPhone, e i caricatori Javascript ti daranno dei problemi, quindi questa non è una risposta perfetta, ma è la migliore che io conosca.
Sii il delegato per l'UIWebView, poi intercetta la chiamata:
– webView:shouldStartLoadWithRequest:navigationType:
controllare i valori delle navigationType nella documentazione. Credo che ti verrà servito meglio restituendo NO
su navigationType == UIWebViewNavigationTypeOther
.
in questo modo la pagina viene caricata più velocemente? sembra che le immagini siano ancora in fase di download, ma non le stiamo semplicemente fornendo a UIWebView.
oppure dovrebbeStartLoadWithRequest caricare prima il testo HTML?
espandendo la risposta di Rob. Ho notato che quando loadHTMLString: baseURL: e restituiva sempre NO, quel webView: shouldStartLoadWithRequest: navigationType: continua a essere chiamato. (Suppongo che loadHTMLString invochi un altro shouldStartLoadWithRequest).
quindi quello che dovevo fare era alternano tra il ritorno SI/NO e ho usato NSScanner per analizzare il codice HTML e il cambiamento src = "http: // ..." per src = ""
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (pageHasNoImages==YES)
{
pageHasNoImages=FALSE;
return YES;
}
NSString* newHtml;
NSString* oldHtml;
NSData *urlData;
NSURLResponse *response;
NSError *error;
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
oldHtml=[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
newHtml=[self.detail scannerReplaceImg:oldHtml]; // my own function to parse HTML
newHtml=[self.detail scannerReplaceAds:newHtml]; // my own function to parse HTML
if (newHtml==nil)
{
NSLog(@"newHtml is nil");
newHtml=oldHtml;
}
[oldHtml release];
pageHasNoImages=TRUE;
[web loadHTMLString:newHtml baseURL:request.URL];
return NO;
}
- 1. iPhone - è @ 2x valido per UIWebView?
- 2. Impossibile cambiare sfondo per UIWebView in iPhone SDK
- 3. download di file da UIWebView nel SDK iPhone
- 4. iphone uiwebview scarica la pagina completa con CSS e immagini
- 5. CoreData (per iPhone) memorizzare le immagini
- 6. compressione delle immagini in base alle dimensioni - iPhone SDK
- 7. immagini Ridimensionare in UIWebView alla finestra dimensioni
- 8. iPhone UIWebview - Salvataggio di un'immagine già scaricata
- 9. Display retina UIWebView e iPhone 4
- 10. iPhone SDK - Come disabilitare l'anteprima delle immagini in UIImagePickerController?
- 11. iPhone 3.1.3 SDK per Leopard
- 12. Immagini per display retina iphone
- 13. iPhone SDK - carica/salva le impostazioni
- 14. ICMP e iPhone SDK
- 15. Come impostare il colore di sfondo per UIWebView in sdk iPhone
- 16. Best practice per le notifiche UIKeyboard - iPhone SDK
- 17. Immagini SVG in un'applicazione iPhone
- 18. rilevamento occhi occhi per iphone sdk
- 19. UIWebView non carica le immagini da URL relativo a protocollo
- 20. Applicazioni per iPhone e iPad Lanciare immagini
- 21. Facebook-ios-sdk con UIWebView integrato
- 22. Come impostare uitableviewcell su sdk per iPhone sdk
- 23. Ping con iPhone SDK
- 24. UITextField Autocomplete - iPhone SDK
- 25. Old Iphone versioni SDK
- 26. SDK iPhone ARC e Facebook
- 27. Come estrarre le immagini dal file swf?
- 28. sdk iPhone, salvare MPMediaItemCollection?
- 29. SDK Iphone: invia e-mail in background nell'app per iphone
- 30. Come salvare e caricare le linee del disegno iphone SDK
webView: shouldStartLoadWithRequest: navigationType: viene chiamato dopo il download. – Harry