Как я могу вызвать код Objective-C из HTML-файла в UIWebView?

Итак, я знаю, что такого рода вещи легко достигаются в Java с использованием файлов JSP, но мне интересно, как я могу смешивать код и html в представлении iOS. Причина, по которой мне нужно это сделать, заключается в том, что у меня есть (локальный) html-контент, загружаемый в UIWebView, и если они нажимают кнопку html, мне нужно, чтобы она срабатывала, например, как IBAction, и выполняла некоторые действия локально.

Возможно ли это в XCode? Что мне не хватает?


person Stephen J.    schedule 10.05.2011    source источник


Ответы (3)


Вы не можете смешать код Objective-C с файлом HTML, который выполняется локально на UIWebView. Тем не менее, есть некоторые обходные пути, которые могут соответствовать вашим потребностям.

Один из них, который я использовал, заключается в том, чтобы иметь HTML-ссылку на настраиваемый URL-адрес и обнаруживать это в соответствующем методе в классе делегата UIWebView следующим образом:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

В этом методе вы должны проверить созданную вами схему URL посредством проверки параметра request, а затем решить, какой селектор закодировать в коде Objective-C.

person pgb    schedule 10.05.2011

Следующий блог показал способ сделать это

http://davinccoder.wordpress.com/2011/06/28/call-ios-method-for-html-button-click/

person raaz    schedule 17.08.2011

Это возможно с помощью обработчиков событий JavaScript, которые вызывают ваши методы target-c через javascript мост.

person Jakub Hampl    schedule 10.05.2011
comment
К сожалению, мост недоступен на iOS. - person benzado; 30.06.2011