Как использовать Javascript для связи с кодом Objective-C? - PullRequest
2 голосов
/ 23 декабря 2010

В родном приложении для iPhone я использую UIWebView для загрузки веб-страницы.

Я хочу использовать JavaScript на веб-странице для обратной связи с кодом Objective-C, например, вызвать функцию в коде Objective-C.

Есть ли способ реализовать это?

1 Ответ

7 голосов
/ 23 декабря 2010

Не существует "прямого" способа сделать это, но вы могли бы использовать UIWebViewDelegate и перехватить ссылку с пользовательской схемой, поэтому в вашей разметке вы должны написать что-то вроде этого:

<a href="myapp://app_action?doSomething">Do Something</a>

Затем в вашем методе UIWebViewDelegate -webView:shouldStartLoadWithRequest:navigationType: напишите что-то вроде этого:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if([[[request URL] scheme] isEqualToString:@"myapp"]) { 
       SEL selector = NSSelectorFromString([[request URL] query]);
       if([self respondsToSelector:selector]) {
          [self performSelector:selector];
       } else {
          //alert user of invalid URL
       }
       return NO;
    }
    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...