在 UIWebView 中截取图片中的链接
Posted
技术标签:
【中文标题】在 UIWebView 中截取图片中的链接【英文标题】:Intercepting links in images in UIWebView 【发布时间】:2013-02-17 08:18:24 【问题描述】:在我的应用程序中,我有一个 webview,并且想在单独的视图控制器中打开加载在网页中的图像,这很好,我需要做的就是获取图像源的 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;
现在,我的问题是,有时,当图像可能带有链接(即标签)时,webview 将在图像在我单独的视图控制器中打开时加载链接。我想做的是,如果存在链接,请阻止 webview 打开链接(仅图像中的链接)。有什么指示我可以如何实现这一点吗?
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于在 UIWebView 中截取图片中的链接的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIWebView+AFNetworking 时链接如下