Ios 截取UIWebView中图像中的链接
在我的应用程序中,我有一个webview,我想在一个单独的视图控制器中打开加载在网页中的图像,这很好,我所需要做的就是获取图像源的URL并将其加载到另一个视图控制器中,我可以这样做 下面是我用来获取图像源URL的代码Ios 截取UIWebView中图像中的链接,ios,objective-c,cocoa-touch,uiwebview,Ios,Objective C,Cocoa Touch,Uiwebview,在我的应用程序中,我有一个webview,我想在一个单独的视图控制器中打开加载在网页中的图像,这很好,我所需要做的就是获取图像源的URL并将其加载到另一个视图控制器中,我可以这样做 下面是我用来获取图像源URL的代码 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([gestureRecognizer isKindOfCl
-(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;
}
现在,我的问题是,有时,当图像可能有链接(即标记)时,webview会在图像在我的单独视图控制器中打开时加载链接。我想做的是,如果存在链接,请停止webview打开链接(仅限于图像中的链接)。有没有关于我如何实现这一目标的建议?最终找到了答案,答案就在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;
}
}