当前位置: 首页 > 编程日记 > 正文

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 

// <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

相关文章:

【组队学习】【27期】青少年编程(Turtle)

青少年编程&#xff08;Turtle&#xff09; 论坛版块&#xff1a; http://datawhale.club/c/team-learning/34-category/34 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/Turtle 学习目标 针对未接触过python、或者刚接触…

linux下activemq安装与配置

一、下载&#xff1a;apache-activemq-5.14.0-bin.tar.gzhttp://activemq.apache.org/activemq-5140-release.html二、安装activemq1、gz文件拷贝到/usr/local/src目录2、解压启动tar -zxvf apache-activemq-5.14.0-bin.tar.gzcd apache-activemq-5.14.0cd bin./activemq start…

参加软件测试培训需要注意哪些

零基础同学想要学习软件测试&#xff0c;通过自学是比较难的&#xff0c;那么很多人都会考虑软件测试培训机构&#xff0c;那么参加软件测试培训需要注意哪些问题呢?来看看下面的详细介绍。 参加软件测试培训需要注意哪些? 一、科学选择培训机构 要想学到最真实有用的软件测试…

Ubuntu12.04LTS添加broadcom 802.11g无线网卡驱动

Description&#xff1a; windows下无线网驱动可用&#xff0c;切换到Ubuntu下&#xff0c;无线网驱动失效。Reason: boardcom在Ubuntu下没有安装默认的驱动&#xff0c;需要自己手动配置install。 Solution&#xff1a; 1&#xff09;有线连接网络&#xff0c;安装b43-fwcutte…

Android常用知识点回顾

开发过程中经常碰到一些问题或知识点&#xff0c;通过Baidu or Google 最终解决了问题。随后也对该知识点有了一定的掌握&#xff0c;可是过了一段时间再次碰到还是会忘记。所以该篇主要用来记录常见知识点。 山中何所有&#xff0c;岭山多白云。出自南北朝陶弘景&#xff0c;谨…

【组队学习】【27期】集成学习

集成学习 论坛版块&#xff1a; http://datawhale.club/c/32-category/32 开源内容&#xff1a; https://github.com/datawhalechina/ensemble-learning 学习目标 详细介绍了机器学习领域中最经典的算法并给出了相应的数学推导和代码&#xff0c;对于每个算法都进行了细致…

UI设计培训分享:2021年UI设计风格新风向标主要体现在哪些方面

UI设计在近几年的各大企业中显得尤为重要&#xff0c;那么随着近几年的发展&#xff0c;2021年UI设计风格新风向标主要体现在哪些方面呢?大家是否做过了解呢?如果没有&#xff0c;那么来看看下面的详细介绍就知道了。 UI设计培训分享&#xff1a;2021年UI设计风格新风向标主要…

《c陷阱与缺陷》之贪心法

在词法分析中&#xff0c;有条规则&#xff1a;每个符号应该包含尽可能多的字符&#xff0c;被称为“贪心法”或“大嘴法”。 K&R表述如下&#xff1a;如果&#xff08;编译器的&#xff09;输入流截止至某个字符之前都已经被分解为一个个符号&#xff0c;那么下一个符号将…

阿里云大数据计算服务MaxCompute(下篇)

关于阿里云大数据计算服务MaxCompute的详细内容&#xff1a; 阿里云大数据计算服务MaxCompute使用教程 &#xff08;MaxCompute&#xff08;原ODPS&#xff09;是一项大数据计算服务&#xff0c;它能提供快速、完全托管的PB级数据仓库解决方案&#xff0c;使您可以经济并高效的…

【组队学习】【27期】李宏毅机器学习

李宏毅机器学习 论坛版块&#xff1a; http://datawhale.club/c/31-category/31 开源内容&#xff1a; https://github.com/datawhalechina/leeml-notes 学习目标 李宏毅老师的机器学习视频是机器学习领域经典的中文视频之一&#xff0c;也被称为中文世界中最好的机器学习…

Python培训分享:Python新版本中的6个新特性

Python在几年做了一个全面的升级&#xff0c;此次Python升级中有6个新特性&#xff0c;本期小编为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的&#xff0c;来看看下面的详细介绍。 Python培训分享&#xff1a;Python 3.10 有几个新的很酷的功能&#xff…

indows上的android开发环境软件架构5

(二)实验要求&#xff1a; ? 修改按下button 显示的内容中添加上自己的学号姓名&#xff1b; ? 添加一个按钮&#xff0c;按钮名称为“退出”&#xff0c;并且为这个按钮添加事件代码&#xff0c;使得点击这个按钮后退 出程序。事件代码如下&#xff1a; FullscreenActivity.…

日志服务Flink Connector《支持Exactly Once》

摘要&#xff1a;Flink log connector是阿里云日志服务推出的&#xff0c;用于对接Flink的工具&#xff0c;包含两块&#xff0c;分别是消费者和生产者&#xff0c;消费者用于从日志服务中读数据&#xff0c;支持exactly once语义&#xff0c;生产者用于将数据写到日志服务中&a…

【组队学习】【27期】Java编程语言

Java编程语言 论坛版块&#xff1a; http://datawhale.club/c/team-learning/33-category/33 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/Java 学习目标 Java独特的面向对象的抽象类编程特点&#xff0c;广泛应用于应用…

UI培训分享:如何提升自己的UI设计能力

相信很多UI设计师在工作中经常会遇到瓶颈&#xff0c;那么如何提升自己的UI设计能力?是我们要思考的一个问题&#xff0c;下面小编就为大家分享—些建议。 UI培训分享&#xff1a;如何提升自己的UI设计能力 1、多看 国内知名的设计网站&#xff0c;比如站酷网、花瓣网、多看优…

微信小程序使用阿里巴巴iconfont字体图标

打开阿里巴巴iconfont官网(http://www.iconfont.cn/);把用到的字体图标加到项目里面; 进入到项目里面&#xff0c;选择font class方式来使用&#xff0c;如果没有生成过代码的同学点生成&#xff0c;已经有代码的直接复制代码;iconfont.pngiconfont.png4.浏览器新建页面&…

IIS6 MVC3 配置

用mvc3做了一个网站&#xff0c;重写了下URL&#xff0c;http://www.xxxx.com/news/details/54.html. 结果在iis上预览找不到页面&#xff0c;但是在vs下就没问题直接运行就没问题。 具体的原因应该是找不到映射。 所以需要在iis上添加映射。 添加MVC的解析&#xff1a; 右击II…

【组队学习】【27期】动手学数据分析

动手学数据分析 论坛版块&#xff1a; http://datawhale.club/c/team-learning/25-category/25 开源内容&#xff1a; https://github.com/datawhalechina/hands-on-data-analysis 学习目标 以项目为主线&#xff0c;通过边学&#xff0c;边做以及边被引导的方式&#xf…

参加UI培训后可以找什么工作

UI设计在近几年备受大家的关注&#xff0c;很多企业对UI设计这个岗位也显得尤为重要&#xff0c;很多人都想转型学习UI设计技术&#xff0c;大多数人选择参加UI培训机构进行系统学习&#xff0c;那么通过系统培训的同学参加UI培训后可以找什么工作呢?来看看下面的详细介绍。 参…

Datawhale组队学习周报(第021周)

本文总结了本周&#xff08;07月05日~07月11日&#xff09;Datawhale组队学习的运行情况&#xff0c;我们一直秉承“与学习者一起成长的理念”&#xff0c;希望这个活动能够让更多的学习者受益。 第 25 期组队学习一共有 3 门开源课程&#xff0c;共组建了 3 个学习群&#xf…

alias重启终端失效的问题

如果使用命令 alias xxxxxx 那么登出以后&#xff0c;别名就会失效。下次登入的时候就不能用了。 为了保持别名可以把它写入.bashrc 在.bashrc的最后写入想要的别名&#xff0c;比如 alias zpll -al 然后退出&#xff0c;重新登入的时候就可以用了。 或者直接运行命令 source ~…

使用文本用户界面(NMTUI)进行网络配置

NetworkManager 文本用户界面&#xff08;TUI&#xff09;工具 nmtui 可提供一个文本界面配置由 NetworkManager 控制的网络。该工具包含在 NetworkManager-tui 子软件包中。写入时&#xff0c;不会默认随 NetworkManager 安装该子软件包。要安装 NetworkManager-tui&#xff0…

UI培训教程分享:常用的商业插画风格有哪些?

在UI设计岗位中插画设计是作为一名合格的UI设计师都会接触到的工作内容&#xff0c;运用插画设计&#xff0c;做到图文结合&#xff0c;令用户的印象也更加深刻&#xff0c;今天小编为大家分享的UI培训教程就是关于常用的商业插画风格有哪些?希望能够给大家带来帮助。 UI培训教…

快速构建Windows 8风格应用32-构建辅助磁贴

引言 Windows Phone中&#xff0c;我们开发者可能会开发的一个功能点是将数据列表中某一项“Pin To Start(固定到开始屏幕)”&#xff0c;大家都知道这种固定到开始屏幕的磁贴叫做辅助磁贴&#xff08;也叫二级磁贴&#xff09;&#xff0c;用户可以通过该辅助磁贴启动应用程序…

【第22周复盘】可以查成绩了!

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

UI培训教程分享:APP启动页UI界面设计

本期为大家分享的ui培训教程是关于APP启动页面的UI设计方面&#xff0c;作为一名合格的UI设计师&#xff0c;APP产品的启动页是需要会的&#xff0c;下面就来看看详细的教程吧。 UI培训教程分享&#xff1a;APP启动页UI界面设计 启动页面在APP中还是很有必要的&#xff0c;对于…

Nginx 配置

content_by_lua ‘’&#xff1b; set_by_lua $c "return ngx.var.a ngx.var.b"; rewrite_by_lua "ngx.var.a ngx.var.a 1"; access_by_lua if ngx.var.remote_addr "127.0.0.1" thenreturnendngx.exit(403);虚拟主机 server_name .a.org; …

cd: mkdir: rmdir: rm

1、1 绝对路径和相对路径绝对路径&#xff1a;是指在目录下的绝对位置&#xff0c;直接到的目标位置例如&#xff1a;只要看到这个路径&#xff1a;D&#xff1a;\图片\徐慧茹.jpg"文件是在D盘的“图片”目录中。类似这样完整的描述文件的路径就是绝对路径。相对路径&…

【Whalepaper】CV论文研读 - Involution内卷:超越Convolution的新算子

Whalepaper是由周郴莲负责的一个每周分享论文的活动&#xff0c;带你研读AI领域的论文&#xff0c;快来一起开源学术科研吧&#xff01; NLP 论文分享&#xff1a;每周日 晚上 九点CV 论文分享&#xff1a; 每周日 晚上 九点Res 论文分享&#xff1a;每周六 晚上 九点半 欢迎…

UI培训分享:UI设计师要掌握哪些知识点

UI设计师除了要学会自己所在行业的技术之外&#xff0c;还要了解一些其他的知识点&#xff0c;这些知识点都会在今后的工作中带来帮助&#xff0c;甚至是加分项&#xff0c;那么下面来看看小编为大家介绍的UI培训分享&#xff1a;UI设计师要掌握哪些知识点? UI培训分享&#x…