在截取图像链接在一个UIWebView(Intercepting links in images i

2019-08-17 00:30发布

在我的应用程序,我有一个web视图,并且想打开一个网页加载在一个单独的视图控制器,它是精细的图像,我需要做的就是将URL到图像的来源和不同视图中的加载控制器,我可以做的。

下面是我用得到的URL图像的源代码。

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
        CGPoint touchPoint = [touch locationInView:self.view];

        NSString *imageSRC = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", touchPoint.x, touchPoint.y];
        NSString *srcOfImage = [webView stringByEvaluatingJavaScriptFromString:imageSRC];
        NSLog(@"src:%@",srcOfImage);
    }
    return YES;
}

现在,我的问题是,有时,当图像可能与它的链接(即标签),而像我单独视图控制器打开网页视图将加载链接。 我想这样做的是,从打开(如果存在)的链接(只有那些在图像)停止web视图。 任何指针,以我怎么可能去实现呢?

Answer 1:

最后想通了,答案在UIWebViewDelegate撒谎。 对于任何人谁是有兴趣的,这里是我如何解决它..

bool isImage;

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
        CGPoint touchPoint = [touch locationInView:self.view];

        NSString *imageSRC = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", touchPoint.x, touchPoint.y];
        NSString *srcOfImage = [webView stringByEvaluatingJavaScriptFromString:imageSRC];
        NSLog(@"src:%@",srcOfImage);
        NSURL *imgsrcURL = [NSURL URLWithString:srcOfImage];
        if (imgsrcURL && imgsrcURL.scheme && imgsrcURL.host) {
            isImage = TRUE;
        }
    }
    return YES;
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if ((navigationType == UIWebViewNavigationTypeLinkClicked) && (isImage)) {
        return NO;
        isImage = FALSE;
    } else {
        return YES;
    }
}


文章来源: Intercepting links in images in UIWebView