如何监听WebView发送的HTTP请求(目标c)?

时间:2012-02-02 15:49:14

标签: objective-c webview

我正在尝试制作一个事件,当在webView中的网站上按下特定按钮时,该事件将被调用(并且将在iPhone上执行Objective-c代码)。 我认为简单的方法是监听webView的HTTP请求。 我能这样做吗?

1 个答案:

答案 0 :(得分:3)

在HTML中,为URL指定一个特殊方案。在此示例中,方案为perform

<!-- ontouchstart tells WebKit to send us mouse events on a touch platform so we can use :active -->
<button class="button" ontouchstart="" onclick="window.open('perform:MAX')">MAX</button>

(您可以在此处使用<a href或其他技巧。此示例来自使用onclick非常有用的代码。)

将您的控制器设置为UIWebView的代表。然后实现这个委托方法:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
                                                 navigationType:(UIWebViewNavigationType)navigationType
{
  NSURL *url = request.URL;
  if ([[url scheme] isEqualToString:@"perform"])
  {
    // url.resourceSpecifier will be @"MAX" in this example
    // Do something with it.
    return NO;
  }

  return YES;
}