app - wkwebview ios
UIWebView no termina de cargar? (1)
Originalmente hice una pregunta y respuesta de esta anomalía aquí: UIWebView muestra UIActivityIndicator para cargar pero ignora las solicitudes de carga adicionales (por ejemplo, anuncios cargados con JavaScript) después de que la página carga inicialmente
El problema es que la página web terminará de cargarse y luego comienza a cargar otros elementos posteriormente (es decir, anuncios, iFrames, etc.). La solución es almacenar la URL actual cuando comienza la carga de la página y la próxima vez que se está "Cargando" si la URL es lo mismo que la última URL cargada que es un falso positivo ...
(En el código a continuación, la página web realmente comienza a cargarse //show UIActivityIndicator
y realmente termina de cargar el contenido principal (no el contenido adicional con el que está luchando) en //hide UIActivityIndicator
)
//Define the NSStrings "lastURL" & "currentURL" in the .h file.
//Define the int "falsepositive" in the .h file. (You could use booleans if you want)
//Define your UIWebView''s delegate (either in the xib file or in your code)
- (void)webViewDidFinishLoad:(UIWebView *)webView {
lastURL = [[NSString alloc] initWithFormat:@"%@", webView.request.mainDocumentURL];
if (falsepositive != 1) {
NSLog(@"Loaded");
//hide UIActivityIndicator
} else {
NSLog(@"Extra content junk (i.e. advertisements) that the page loaded with javascript has finished loading");
//This method may be a good way to prevent ads from loading hehe, but we won''t do that
}
}
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; {
NSURL *requestURL =[request mainDocumentURL];
currentURL = [[NSString alloc] initWithFormat:@"%@", requestURL]; //not sure if "%@" should be used for an NSURL but it worked...
return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
if ([currentURL isEqualToString:lastURL]) {
falsepositive = 1;
NSLog(@"The page is loading extra content with javascript or something, ignore this");
} else {
falsepositive = 0;
NSLog(@"Loading");
//show UIActiviyIndicator
}
}
Tengo una vista web en mi aplicación. Carga la mayoría de las páginas y se llama a la función webViewDidFinishLoad cuando finaliza la carga. Pero algunas de las páginas que se cargan no finalizan aunque las páginas parecen estar cargadas. En estos casos, ni - (void)webViewDidFinishLoad:(UIWebView *)webView
ni (void)webView:(UIWebView *)webView didFailLoadWithError
recibe una llamada. Por ejemplo, vaya al sitio http://www.mynevadacounty.com/ y cuando haga clic en cualquiera de los elementos como el móvil, la carga de la página no finalizará en UIWebView.
¿Cuál podría ser la posible causa de esto?
Editar: la mayoría de estos sitios que estoy tratando de cargar son sitios sharepoint