Скажем, у меня может быть UIWebView
отображается страница, содержащая link
. Когда пользователь нажимает на ссылку, возможно ли инициировать событие для обновления native UI
? Например, когда пользователь нажимает на ссылку, я хочу изменить значение прогресса в UIProgressView
. Есть какой-либо способ сделать это? Спасибо!Как сделать ответ на приложение iOS для события click в UIWebView?
0
A
ответ
0
Вам необходимо реализовать webView: shouldStartLoadWithRequest: navigationType: метод протокола.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// the request variable contains the request the user clicked on.
}
2
Попробуйте использовать этот метод:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
return TRUE;
}
и вы можете проверить значение navigationType:
enum {
UIWebViewNavigationTypeLinkClicked,
UIWebViewNavigationTypeFormSubmitted,
UIWebViewNavigationTypeBackForward,
UIWebViewNavigationTypeReload,
UIWebViewNavigationTypeFormResubmitted,
UIWebViewNavigationTypeOther
};
0
Вы можете использовать обнаружение событий касания в UIWebView методами делегата ниже
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Touches began");
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Touches moved");
}
- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Touches ended");
}
- (void) touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Touches cancelled");
}
Вы должны добавить UIWebView, охватывающий основной вид и добавляющий пользовательский класс, который расширяет UIWindow для захвата событий касания.
Вы можете найти пошаговый учебный блог here.
Что такое 'WebUIView', вы имеете в виду' UIWebView'? – Popeye
http://stackoverflow.com/questions/15537320/invoke-method-in-objective-c-code-from-html-code-using-uiwebview/15541607#15541607 посмотреть на этот вопрос – Vinodh