Как я могу вызвать код objective-c из html-файла в UIWebView?

#iphone #html #objective-c #ibaction

#iPhone #HTML #objective-c #ibaction

Вопрос:

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

Возможно ли это в XCode? Чего я не понимаю?

Ответ №1:

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

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

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

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

Ответ №2:

В следующем блоге показан способ сделать это

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

Ответ №3:

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

Комментарии:

1. К сожалению, мост недоступен на iOS.