2014-09-18 3 views
0

У меня есть веб-представление, показывающее html + js intro, выполненное кем-то еще. Когда пользователь нажимает на определенное изображение, мне нужно выполнить segue. Я не знаю javascript. Если я пытаюсь использовать .src, то возвращается пустое, если попытаться с .innerHTML всегда возвращать много кода. Как я могу определить это конкретное касание? Спасибо.Обнаружение затуманенного изображения внутри UIWebView

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]; 
    [tap setDelegate:self]; 
    [self.webView.scrollView addGestureRecognizer:tap]; 

    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"html" inDirectory:@"myDir"]; 
    NSURL* url = [[NSURL alloc]initFileURLWithPath:htmlFile]; 
    NSURLRequest* request = [NSURLRequest requestWithURL:url]; 
    [self.webView loadRequest:request]; 
} 
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 
-(void)viewTapped:(UITapGestureRecognizer*)tap { 
    CGPoint touchPoint = [tap locationInView:self.webView]; 
    NSString *js = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", touchPoint.x, touchPoint.y]; 
    NSString *urlToSave = [self.webView stringByEvaluatingJavaScriptFromString:js]; 
//Returning an empty string 
    if (urlToSave.length > 0) { 
      [self performSegueWithIdentifier:@"introToMain" sender:self]; 
    } 

} 

ответ

0

Я думаю, вы должны сделать свое изображение в html кликабельном. Если это так, просто игнорируйте это. Затем вы должны использовать метод делегирования shouldStartLoadWithRequest UIWebView следующим образом:

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


    if (navigationType == UIWebViewNavigationTypeLinkClicked){ 

     NSURL *url = request.URL; 
     //Maybe you can detect the image here looking to the url. 

    } 

    return YES; 

} 
Смежные вопросы