Как прослушивать HTTP-запросы, отправленные WebView (цель c)? - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь создать событие, которое будет вызываться (и будет выполнять код target-c на iPhone) при нажатии определенной кнопки на веб-сайте в webView. Я думаю, что простой способ - прослушивать HTTP-запросы webView. Могу ли я это сделать?

1 Ответ

3 голосов
/ 02 февраля 2012

В вашем 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...