Вы можете сделать это, используя собственный протокол.В вашем html-файле вы можете сделать ссылку на что-то вроде myProtocol://callSomeAction
.
Затем на вашем UIWebViewDelegate
(вероятно, UIViewController
) вы должны реализовать метод, который называется:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
(Документы здесь )
Идея состоит в том, что в этом коде вы определяете протокол на основе данных параметра request
.Если это myProtocol
, вы можете позвонить своему IBAction
и вернуть NO
.Если это что-то другое, вы откроете страницу загрузки веб-представления и просто вернете YES
.
Код будет выглядеть примерно так:
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSString* scheme = [[request URL] scheme];
if ([@"myProtocol" isEqual:scheme]) {
// Call your method
return NO;
} else {
return YES;
}
}