Dans mon application, certaines pages HTML sont chargées dans une vue Web. J'ai besoin de cliquer sur certaines étiquettes comme "neurone" et je devrais afficher leur description dans une autre vue. Comment puis-je obtenir le clic sur l'étiquette et l'étiquette cliquée dans la vue Web?
Par "étiquette", voulez-vous dire "lien"? Si c'est le cas, donnez à UIWebView un délégué et implémentez webView:shouldStartLoadWithRequest:navigationType
. Il sera appelé chaque fois que l'utilisateur appuiera sur un lien dans UIWebView.
Utilisez le délégué pour déterminer le type de navigation!
Mon extrait
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked){
NSURL *url = request.URL;
[self openExternalURL:url];//Handle External URL here
}
return YES;
}
L'implémentation est simple. Chaque fois qu'une vue Web souhaite charger quelque chose, elle appelle
webView:shouldStartLoadWithRequest:navigationType
qui passe dans l'url associée au lien hypertexte. Ici, vous pouvez analyser l'argument NSURLRequest et gérer ce que vous voulez faire en code natif.
(N'oubliez pas, retournez NON pour empêcher l'UIWebView de charger le lien par la suite)