Если я правильно понимаю ваш вопрос, вы хотите вызвать метод Objective C из обработчика событий javascript onClick
в вашем UIWebView
. Способ сделать это состоит в том, чтобы перенаправить браузер на URL-адрес с пользовательской схемой в вашем коде JavaScript следующим образом:
function buttonClicked() {
window.location.href = "yourapp://buttonClicked";
}
Вернувшись к Задаче C, объявите, что ваш контроллер представления соответствует протоколу UIWebViewDelegate
,
@interface DTWebViewController : DTViewController <UIWebViewDelegate> {
...
установить ваш контроллер в качестве делегата веб-представления,
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.delegate = self;
}
и перехватите URL-адрес до его загрузки следующим образом:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if ([[request.URL scheme] isEqual:@"yourapp"]) {
if ([[request.URL host] isEqual:@"buttonClicked"]) {
[self callYourMethodHere];
}
return NO; // Tells the webView not to load the URL
}
else {
return YES; // Tells the webView to go ahead and load the URL
}
}