2 votes

boutons personnalisés sur uiwebview(iphone)

Je veux ajouter des boutons personnalisés sur le webView. Ils devraient aussi être là quand j'essaie quelque chose dans l'url.

comment est-ce possible ?

En fait, je veux placer des boutons sur l'uiwebView et ce sont des boutons personnalisés.

//Code modifié...

Je fais cela...ici le lien apparaît mais la méthode n'est pas appelée...et il n'y avait pas d'erreur dans votre code... :)

NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

NSString *HTMLData = @"<html<a href=\"button://dosomething\" class=\"buttonStyle\">Click me!</a>--></style><br><br>";

[webView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",imagePath]]];

et ensuite

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request   navigationType:(UIWebViewNavigationType)navigationType 
{
    // only do something if a link has been clicked...
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {     

        // check if the url requests starts with our custom protocol:
        if ([[[request URL] absoluteString] hasPrefix:@"button://"]) {
            // Do custom code
            return NO;
        } 
    }
    return YES;
}

8voto

Nick Weaver Points 30418

Il vous suffira d'utiliser des liens et de les styliser.

Quelque chose comme :

<a href="#" class="buttonStyle">Click me!</a>

Jetez un coup d'œil à http://www.cssbuttongenerator.com/ Il est très facile de créer votre propre bouton et de le laisser générer le code css pour vous. Vous devez en fait cliquer sur le bouton de création lui-même pour générer le code.

Exécuter un code personnalisé en cliquant sur un lien (bouton) dans le html

Tout d'abord, vous devez vous conformer au protocole UIWebViewDelegate, et définir le délégué en conséquence.

Ensuite, mettez en œuvre shouldStartLoadWithRequest .

Les liens de vos boutons devraient ressembler à ceci :

<a href="button://dosomething" class="buttonStyle">Click me!</a>

Nous utilisons un protocole personnalisé que nous créons : button:// .

Maintenant, implémentez shouldStartLoadWithRequest comme ceci :

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{
    // only do something if a link has been clicked...
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {     

            // check if the url requests starts with our custom protocol:
        if ([[[request URL] absoluteString] hasPrefix:@"button://"]) {
            // Do custom code
            return NO;
        } 
    }

    return YES;
}

C'est tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X