Objective c 通过单击UIWebView中的按钮来调用方法

Objective c 通过单击UIWebView中的按钮来调用方法,objective-c,cocoa-touch,uiwebview,action,Objective C,Cocoa Touch,Uiwebview,Action,我想生成一些HTML内容并将其放入UIWebView中。HTML包含一些按钮。是否可以为这些按钮定义操作?当有人在UIWebView中按下此按钮时,我想在objective-c代码中调用一个方法(例如firstButtonPressed) 谢谢你的帮助。看看phonegap项目: 它被设计用来做这类事情,甚至更多。如果有什么问题的话,您将能够知道如何编写代码,因为该项目是开源的。为了跟进这一点,将HTML/javascript事件连接到objective-c方法是可能的,而且并不困难 Damie

我想生成一些HTML内容并将其放入UIWebView中。HTML包含一些按钮。是否可以为这些按钮定义操作?当有人在UIWebView中按下此按钮时,我想在objective-c代码中调用一个方法(例如firstButtonPressed)


谢谢你的帮助。

看看phonegap项目:


它被设计用来做这类事情,甚至更多。如果有什么问题的话,您将能够知道如何编写代码,因为该项目是开源的。

为了跟进这一点,将HTML/javascript事件连接到objective-c方法是可能的,而且并不困难

Damien Berrigaud通过使用
文件://
链接提出了一个解决方案

// 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;
}
这个链接帮助我解决同样的问题

按钮

<a href="didTap://button1"><img src="button1.jpg" /></a>
    - (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;
}