¿Cómo puedo usar UIWebView en Xcode para que cuando carga las páginas NO descargue las imágenes (para causar una página que se cargue más rápido)?SDK de iPhone: UIWebView para detener la carga/descarga de imágenes
Respuesta
UIWebView
es una pequeña sombra pálida y pobre de WebKit llena WebView
, para lo que esto es fácil. -webView:shouldStartLoadWithRequest:navigationType:
solo recibe llamadas para la navegación. No se llama para todas las solicitudes como WebPolicyDelegate
en mac. Con UIWebView
, así es como atacaría este problema:
Implemente -webView:shouldStartLoadWithRequest:navigationType:
y configúrelo para que siempre devuelva NO
. Pero también tomará la solicitud y generará un NSURLConnection
. Cuando el NSURLConnection
termine de buscar los datos, revisará las etiquetas IMG y las modificará al marcador que desee. Luego, cargará la cadena resultante en el UIWebView
usando -loadHTMLString:baseURL:
.
Por supuesto, el análisis del HTML no es una tarea trivial en el iPhone, y los cargadores de Javascript te darán problemas, por lo que esta no es la respuesta perfecta, pero es lo mejor que sé.
Sé el delegado para la UIWebView, a continuación, interceptar la llamada:
– webView:shouldStartLoadWithRequest:navigationType:
comprobar los valores de navigationType en la documentación. Creo que será mejor si devuelve NO
en navigationType == UIWebViewNavigationTypeOther
.
¿Esto hace que la página se cargue más rápido? Parece que las imágenes todavía se están descargando, pero simplemente no las estamos alimentando a UIWebView.
o ¿shouldStartLoadWithRequest acaba de cargar primero el texto HTML?
expandiendo la respuesta de Rob. Observé que cuando loadHTMLString: baseURL: y siempre devuelve NO, ese webView: shouldStartLoadWithRequest: navigationType: simplemente sigue recibiendo llamadas. (sospecho que loadHTMLString invoca otro shouldStartLoadWithRequest).
así que lo que tenía que hacer era volver alternan entre SI/NO y yo solía NSScanner para analizar el HTML y el cambio src = "http: // ..." para 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. descarga de archivos desde UIWebView en iPhone SDK
- 2. iphone uiwebview descarga la página completa con CSS e imágenes
- 3. Cómo renderizar imágenes SVG en iphone sin uiwebview?
- 4. iPhone - ¿es @ 2x válido para UIWebView?
- 5. compresión de imágenes por tamaño - SDK de iPhone
- 6. Imágenes de alta resolución en uiwebview
- 7. Cómo establecer el color de fondo para UIWebView en el iPhone sdk
- 8. ¿Cómo detener a UIWebView de reproducir mp3?
- 9. Cómo obtener la altura del contenido de un UIWebView en iPhone sdk, objetivo-c?
- 10. detección de parpadeo para iphone sdk
- 11. PDF Manipulación en iPhone SDK
- 12. Detener el uso de imágenes de la retina sólo
- 13. iPhone UIWebview - Guardar una imagen ya descargada
- 14. Pantalla retina UIWebView y iPhone 4
- 15. No se puede cambiar el fondo de UIWebView en el SDK de iPhone
- 16. SDK de iPhone: controle los sitios web en UIWebView mediante programación
- 17. iphone sdk> 3.0. ¿Miniatura de video?
- 18. UIImage de CALayer - iPhone SDK
- 19. CoreData (para iPhone) almacenamiento de imágenes
- 20. Imágenes para retina pantalla iphone
- 21. UITextField Autocompletar - SDK de iPhone
- 22. iPhone: pop botón en UIWebView
- 23. Uso de imágenes Retina en un UIWebView local
- 24. iPhone UIWebView reproduciendo MP3. Protocolo de despido?
- 25. Habilitar cookies en UIWebView (iPhone)
- 26. Xcode iPhone - Base SDK, diferencia Active SDK?
- 27. iPhone SDK: Problemas para arrastrar un UIImageView
- 28. Imágenes SVG en una aplicación de iPhone
- 29. Galería de imágenes de iPhone
- 30. iPhone SDK: EXC_BAD_ACCESS con CFRelease para ABAddressBookRef
webView: shouldStartLoadWithRequest: navigationType: recibe una llamada después de que se haya producido la descarga. – Harry