пользовательские кнопки на uiwebview (iphone) - PullRequest
2 голосов
/ 07 мая 2011

Я хочу добавить пользовательскую кнопку в webView. они также должны быть там, когда я пытаюсь что-нибудь в URL.

как это возможно ??

В основном я хочу поставить кнопки на uiwebView, и они являются пользовательскими кнопками

// отредактированный код ...

Я делаю это ... здесь появляется ссылка, но метод не вызывается ... и в вашем коде не было ошибок ..:)

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]]];

, а затем

- (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;
}

1 Ответ

8 голосов
/ 07 мая 2011

Вам просто нужно использовать ссылки и стилизовать их.

Что-то вроде:

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

Посмотрите на http://www.cssbuttongenerator.com/, очень просто создать свою собственную кнопку и позволить ей генерировать код CSS для вас.Вам действительно нужно нажать на кнопку «Создать себя», чтобы сгенерировать код.

Выполнить пользовательский код, нажав на ссылку (кнопку) в html

Сначалавсе, что вам нужно, чтобы соответствовать протоколу UIWebViewDelegate, и соответственно установить делегата.

Затем внедрите shouldStartLoadWithRequest.

Ссылки на кнопки должны выглядеть следующим образом:

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

Мы используем настраиваемый протокол, который мы создаем: button://.

Теперь реализуем mustStartLoadWithRequest следующим образом:

- (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;
}

Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...