Вызовите метод, нажав кнопку в UIWebView - PullRequest
6 голосов
/ 02 марта 2010

Я хочу сгенерировать некоторый HTML-контент и поместить его в UIWebView. HTML содержит несколько кнопок. Можно ли определить действия для этих кнопок? Я хочу вызвать метод (например, firstButtonPressed) в моем коде Objective-C, когда кто-то нажимает эту кнопку в UIWebView.

Спасибо, что помогли мне.

Ответы [ 3 ]

4 голосов
/ 14 ноября 2010

Просто для продолжения этого можно и не сложно связать события HTML / javascript с методамиjective-c.

Дэмиен Берриго изобрел хороший пример того, как это сделать, используя file:// ссылки

// Map links starting with file://
//            ending with #action
// with the action of the controller if it exists.
//
// Open other links in Safari.
- (BOOL)webView: (UIWebView*)webView shouldStartLoadWithRequest: (NSURLRequest*)request navigationType: (UIWebViewNavigationType)navigationType {
  NSString *fragment, *scheme;

  if (navigationType == UIWebViewNavigationTypeLinkClicked) {
    [webView stopLoading];
    fragment = [[request URL] fragment];
    scheme = [[request URL] scheme];

    if ([scheme isEqualToString: @"file"] && [self respondsToSelector: NSSelectorFromString(fragment)]) {
      [self performSelector: NSSelectorFromString(fragment)];
      return NO;
    }

    [[UIApplication sharedApplication] openURL: [request URL]];
  }

  return YES;
}
1 голос
/ 03 июля 2014

Эта ссылка http://davinc.me/post/45670387932/call-ios-method-for-html-button-click поможет мне решить ту же проблему.

Для кнопки

<a href="didTap://button1"><img src="button1.jpg" /></a>

Тогда станьте делегатом

UIWebView

и затем используйте

    - (BOOL)webView:(UIWebView*)aWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *absoluteUrl = [[request URL] absoluteString];
    if ([absoluteUrl isEqualToString:@"didTap://button1"]) {
        [self didTapButton1];
        return NO;
    }
    return YES;
}
0 голосов
/ 02 марта 2010

Взгляните на проект phonegap: www.phonegap.com

Он предназначен для подобных вещей и не только. Во всяком случае, вы сможете получить представление о том, как кодировать это, поскольку проект с открытым исходным кодом.

...