2014-05-08 3 views
1

Mon problème est que je demande seulement une requête d'url à charger, mais le serveur charge la vue Web de charger un tas d'autres choses.Y at-il un moyen de savoir dans la méthode webViewDidFinishLoad: quelle url a été chargée?

Il existe une méthode déléguée appelée webViewDidFinishLoad: qui transmet en tant que paramètre la vue Web qui a fini de charger.

La question est: Y at-il un moyen de savoir quelle requête a fini de charger?

+1

est 'webView: shouldStartLoadWithRequest: NavigationType : 'appelé pour ces autres? – rmaddy

+0

oui, mais l'ordre dans lequel ils sont chargés peut ne pas être le même dans lequel ils finissent d'être chargés. –

+0

Je peux me tromper dans mon dernier commentaire si une seule demande est faite à la fois. –

Répondre

0

Vous venez d '1 moyen de connaître la demande réelle dans votre WebView:

NSURLRequest *request = webview.request; 

et vous pouvez suivre la demande qui commencent par la méthode:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 
+0

En supposant que webview.request est la dernière requête chargée, ce serait la bonne réponse. Merci! Savez-vous si une seule requête peut être chargée à la fois ou si plusieurs requêtes peuvent être chargées de manière asynchrone? –

+1

J'espère pour vous juste :) Mais je suggère de lire la documentation d'Apple au sujet de la méthode shouldStartLoadWithRequest qui est appelée quand le cadre de chargement de webview etc. –

+0

Ensuite, la manière correcte de le faire est de stocker la demande en cours de chargement (récupérée du shouldStartLoadWithRequest :) dans une variable, puisque webview.request est seulement la demande faite par l'utilisateur (comme je l'ai confirmé: http://s29.postimg.org/u44zjvrja/Captura_de_pantalla_2014_05_09_a_la_s_10_22_39.jpg). Veuillez mettre à jour la réponse –

Questions connexes