Comment arrêter UIWebView en chargement immédiatement

Comme le dit la documentation d'ios, la [webView stopLoading] devrait être utilisée pour arrêter la tâche de chargement de webview.

Pour autant que je vois, ces methods s'exécutent de manière asynchronous, et n'arrête PAS de traiter la request de chargement en cours immédiatement.

Cependant, j'ai besoin d'une méthode qui forcera webview à arrêter immédiatement la tâche en cours, car le chargement de la partie bloque le thread principal, ce qui pourrait entraîner des animations sur les animations.

Alors, y a-t-il un moyen de réussir cela?

Cela a fonctionné pour moi.

 if (webText && webText.loading){ [webText stopLoading]; } webText.delegate=nil; NSURL *url = [NSURL URLWithSsortingng:@""]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [webText loadRequest:requestObj]; 

N'utilisez pas UIWebView pour download votre document html directement. Utilisez le mécanisme de téléchargement async comme ASIHTTPRequest pour get votre file html téléchargé par un thread d'arrière-plan. Lorsque vous obtenez la requestFinished avec un contenu de votre HTML, donnez-le à UIWebView.

Exemple de la page ASIHTTPRequest comment créer une requête asynchronous:

 - (IBAction)grabURLInBackground:(id)sender { NSURL *url = [NSURL URLWithSsortingng:@"http://allseeing-i.com"]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request setDelegate:self]; [request startAsynchronous]; } - (void)requestFinished:(ASIHTTPRequest *)request { // Use when fetching text data NSSsortingng *responseSsortingng = [request responseSsortingng]; // Use when fetching binary data NSData *responseData = [request responseData]; } - (void)requestFailed:(ASIHTTPRequest *)request { NSError *error = [request error]; } 

Utilisez le responseSsortingng au paramètre de la méthode loadHTMLSsortingng votre UIWebView:

 UIWebView *webView = [[UIWebView alloc] init]; [webView loadHTMLSsortingng:responseSsortingng baseURL:[NSURL URLWithSsortingng:@"Your original URL ssortingng"]];