首页
登录 | 注册

UIWebView之获取所点位置图片URL

UIWebView有自己的UIResgure,如果我们手动加入自己的GestureRecognize将不能识别,如UILongPressGestureRecongnizer. 在浏览网页的时候,如果看到喜欢的图片,想把它保存下来如何办呢? 我们可以自己写一个程序来实现,用uiwebview开发一个自己的浏览器。

关面说到uiwebview不能识别long press gesture,幸好有一个可以识别,那就是double click.因此我们注册它,代码如下:

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTouchesRequired = 2;
[self.theWebView addGestureRecognizer:doubleTap];

然后就是实现doubleTap:

-(void) doubleTap :(UITapGestureRecognizer*) sender
{
//
//
int scrollPositionY = [[self.theWebView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];
int scrollPositionX = [[self.theWebView stringByEvaluatingJavaScriptFromString:@"window.pageXOffset"] intValue];

int displayWidth = [[self.theWebView stringByEvaluatingJavaScriptFromString:@"window.outerWidth"] intValue];
CGFloat scale = theWebView.frame.size.width / displayWidth;

CGPoint pt = [sender locationInView:self.theWebView];
pt.x *= scale;
pt.y *= scale;
pt.x += scrollPositionX;
pt.y += scrollPositionY;

NSString *js = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).tagName", pt.x, pt.y];
NSString * tagName = [self.theWebView stringByEvaluatingJavaScriptFromString:js];
if ([tagName isEqualToString:@"img"]) {
NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", pt.x, pt.y];
NSString *urlToSave = [self.theWebView stringByEvaluatingJavaScriptFromString:imgURL];
NSLog(@"image url=%@", urlToSave);
}
}

这样我们就可以得到图片的url,然后下载保存就行了。
本文网址:http://www.bnee.net/article/277298.html

相关文章

  • package com.truekey.alarmclock.user;import java.io.File;import android.app.Activity;import android.app.Dialog;import and ...
  • /**  * 获取跳转后的url  * @param $url  * @return mixed 定向后的url的真实url  */ function get_real_url($url){     $header = get_header ...
  • 因为List 是一个元素有序的.可以重复.可以为 null 的集合: 所以: 方法indexOf可以获取元素出现的第一个位置的引索: 与之相反的是lastlndexOf获取元素最后出现的位置引索: 如果集合中没有该元素则返回-1: 其原理都 ...
  • Javascript、js 查找匹配网页html中图片url
    function getimgsrc(htmlstr){ var reg=/
  • Facebook图片存储系统HayStack
    HayStack是Fackbook用于存储照片的系统,其存储照片的数量在千亿数量级,本文简要分析HayStack的设计与实现原理.   图片存储的几个关键点: 1. Metadata信息存储.由于图片数量巨大,单机存放不了所有的Metada ...
  • 1         实验目的 浏览器登录W5500服务器显示一张图片,再通过文件上传一个图片更新服务器中的图片:刷新浏览器显示更新后的图片. 2         实验总体设计 实验主要分两个部分:1:浏览器申请图片数据以及上传图片数据:: ...
  • 原帖地址:http://blog.csdn.net/xueling022/article/details/530533831.Apache服务器下防止图片盗链的办法如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向 ...
  • python脚本模拟发送http请求: rqUrl=/test/test.mp4 rqHeaders={'Host':test.com'} httpClient = httplib.HTTPConnection(proxyIp,proxyP ...