web-dev-qa-db-fra.com

Clic sur le lien UIWebView

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?

30
PgmFreek

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.

35
matt

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;

}
67
Franky

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)

5
futureelite7