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 

// <Find HTML tag which was clicked by user> 
// <If tag is IMG, then get image URL and start saving> 
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,然后下载保存就行了。

转载于:https://www.cnblogs.com/zsw-1993/archive/2012/12/17/4880565.html

UIWebView之获取所点位置图片URL相关推荐

  1. 拼接php图片路径,利用ThinkPHP5中的获取器,实现图片URL拼接

    图片URL地址要保存为相对路径 存在数据库中的图片路径数据,要存放为相对路径,不要写死.这一点很重要 +----+---------------------------+------+-------- ...

  2. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64

    本篇是通过url地址获取文件的base64 如果想要通过File文件获取base64查看这篇 以下代码可直接复制使用!注意第9行的图片地址更改下 <template><div cla ...

  3. Java通过图片url地址获取图片base64位字符串的两种方式

    工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...

  4. iOS 获取本地图片URL

    文件目录内图片URL let path = Bundle.main.path(forResource: 图片名字, ofType: 文件类型) let url = URL(fileURLWithPat ...

  5. js 获取图片url的Blob值并预览

    js 获取图片url的Blob值并预览 1)使用 XMLHttpRequest 对象获取图片url的Blob值 参考:https://www.cnblogs.com/tujia/p/6483255.h ...

  6. android 根据文件Uri获取图片url

    今天,简单讲讲android里如何通过文件的Uri获取文件的路径url. 昨天,我讲了如何调用手机的文件管理器获取文件资源,但是文件管理器返回的是文件的Uri,我们需要通过Uri获取文件的url才可以 ...

  7. iOS根据图片url获取尺寸

    可以在UIImage的分类中加入下面的代码,并且引入系统的ImageIO.framework /**根据图片的url获取尺寸@param URL url@return CGSize*/ + (CGSi ...

  8. php 获取内容页图片,织梦DEDECMS内容页获取图片URL地址的方法

    织梦DEDECMS内容页获取图片URL地址的方法 {dede:sql sql="select * from dede_uploads where arcid = ~id~"} [f ...

  9. 火车头采集下载图片的位置和URL地址的更换

    火车头采集下载图片的位置和URL地址的更换 1: 先明白, img 标签里面有一个 src 地址 2: 明白下面这图片的内容 下载图片勾选,是必须的 文件保存目录 它代表了2个意思 1是下载的位置[ ...

最新文章

  1. 如何挑选靠谱的Java培训机构
  2. VC6.0 中的默认操作系统版本的问题
  3. Erlang的边界检查(3)
  4. java所有的质因数_Java实现分解任意输入数的质因数算法示例
  5. Cookie详解整理
  6. 训练自己的数据_PyTorch版CenterNet训练自己的数据集
  7. 错误 执行Transact-SQL语句批处理时发生了异常。无法设置主体'sa'的凭据
  8. java语言的主要特点是什么,真的太香了!
  9. vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。...
  10. 偏微分方程数值解的matlab程序,偏微分方程数值解法的MATLAB源码
  11. mysql pxc缺点_MYSQL高可用之PXC
  12. 免费下载知网论文的重要链接
  13. Cloudera-server迁移
  14. 如何高效读懂一本书(附10种读书方法)
  15. 计算机特定用户共享文件夹,局域网共享给特定用户、文件夹共享给指定用户访问方法...
  16. SQL Server研习录(20)——FLOOR()函数
  17. 第四讲:统计分析之良率和敏感度分析
  18. 亲测,idea切换分支异常:error: The following untracked working tree files would be overwritten by checkout
  19. R及R Studio下载及简单介绍(界面+R语言)
  20. 移动端大规模草渲染的实现(精简版)

热门文章

  1. linux中使用u盘和光驱的命令_Linux操作系统下挂载硬盘光驱和U盘的方法
  2. linux mysql 5.7.12_Linux环境mysql5.7.12安装教程
  3. java线程的异常无法捕获异常_Java如何从线程中捕获异常
  4. xshell连接不了服务器显示22端口,win10安装redis,xshell无法连接22端口
  5. cmake开发环境 linux qt_一步步搭建CMake+QT+VTK+BOOST开发环境
  6. c语言 狸抓兔子,捕捉猫狸的方法- 抓野猫的最好方法
  7. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯
  8. 5行Python代码实现图像分割
  9. darknet53网络结构及配置文件对比
  10. BorderDet(论文解读)