Вы можете сделать это, используя собственный протокол. В вашем html-файле вы можете ссылаться на что-то вроде myProtocol://callSomeAction
.
Тогда на вашем UIWebViewDelegate
(вероятно, ваш UIViewController
) вы должны реализовать метод под названием:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
(Docs here)
Идея заключается в том, что на этом коде, вы обнаруживаете протокол, основанный на данные в параметре 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;
}
}
Можете ли вы показать мне, как это делается. Потому что я не могу это понять. Благодарю. – StefanHanotin
Просто добавлен пример кода. Надеюсь, это сработает для вас. – pgb
Ты мой друг ГЕРО! Бесконечно благодарен! – StefanHanotin