Я показываю один UIWebView в своем приложении для iPhone. В UIWebView я показываю HTML-страницу с JavaScript. Я хочу вызвать метод (из X-кода), когда одна кнопка нажата на странице HTML.
Как я могу это сделать. Благодаря
Я показываю один UIWebView в своем приложении для iPhone. В UIWebView я показываю HTML-страницу с JavaScript. Я хочу вызвать метод (из X-кода), когда одна кнопка нажата на странице HTML.
Как я могу это сделать. Благодаря
Если я правильно понял ваш вопрос, вы хотите вызвать метод Objective C из обработчика события javascript onClick
в UIWebView
. Способ сделать это - перенаправить браузер на URL с пользовательской схемой в вашем javascript-коде, например:
function buttonClicked() {
window.location.href = "yourapp://buttonClicked";
}
В Objective 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
}
}
Быстрая версия
webView.delegate = self
extension ViewController: UIWebViewDelegate {
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if request.description == "yourappname://buttonClicked" {
// do your stuff here
return false
}
return true
}
}
Пример HTML
<a href="yourappname://buttonClicked">
<img src="http://someurl.com/table_desktop.jpg"/ width="100%">
</a>
Если вы хотите знать, как это сделать в wkWebView
, вот ссылка