后台返回的Web中如果有图片,超链接,而需求又要求我们点击图片放大,点击超链接打开网页,这时候就需要使用js代码来帮助我们实现这个功能了。

1.首先要实现webView 的代理方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{

NSString *requestString = [[request URL] absoluteString];

if ([requestString hasPrefix:@"myweb:imageClick:"]) {

NSString *imageUrl = [requestString substringFromIndex:@"myweb:imageClick:".length];

NSLog(@"image url------%@", imageUrl);

//创建视图并显示图片

[self showBigImage:imageUrl];

return NO;

}

if ([requestString hasPrefix:@"myweb:URLClick:"]) {

NSString*url=[requestString substringFromIndex:@"myweb:URLClick:".length];

NSLog(@"url-------%@",url);

BannerWebViewController *webVC = [[BannerWebViewController alloc] init];

webVC.url = url;

[self.navigationController pushViewController:webVC animated:YES];

}

return YES;

}

2.在 webViewDidFinishLoad 方法里面调用js代码编写的方法来获取图片和超链接

- (void)webViewDidFinishLoad:(UIWebView *)webView{

static  NSString * const jsGetImages =

@"function getImages(){\

var objs = document.getElementsByTagName(\"img\");\

for(var i=0;i<objs.length;i++){\

objs[i].οnclick=function(){\

document.location=\"myweb:imageClick:\"+this.src;\

};\

};\

return objs.length;\

};";

[webView stringByEvaluatingJavaScriptFromString:jsGetImages];

//注入js方法

//注入自定义的js方法

[webView stringByEvaluatingJavaScriptFromString:@"getImages()"];

static  NSString * const jsGetURls =

@"function getUrls(){\

var objs = document.getElementsByTagName(\"a\");\

for(var i=0;i<objs.length;i++){\

objs[i].οnclick=function(){\

document.location=\"myweb:URLClick:\"+this.href;\

};\

};\

return objs.length;\

};";

[webView stringByEvaluatingJavaScriptFromString:jsGetURls];

[webView stringByEvaluatingJavaScriptFromString:@"getUrls()"];

}

截获webView点击事件相关推荐

  1. WebView 实现JS效果和a标签的点击事件

    2019独角兽企业重金招聘Python工程师标准>>> 目前很多android app都可以显示web页面的界面,嵌入式开发,这个界面一般都是WebView这个控件加载出来的,学习该 ...

  2. webview 模拟点击_Android如何基于坐标对View进行模拟点击事件详解

    前言 大家应该都知道,在Android中,我们对于View进行模拟点击事件,很容易,比如调用View.performClick即可. 但是有些时候,我们想要更加精细的点击,比如View的某一区域或者某 ...

  3. Android在WebView中给图片设置点击事件

    好久没有更新博客了,今天来个小知识点.我们知道在WebView中加载的是Html也面,在开发中都是Web前端人员写好以后给个链接我们去用webView进行loadUrl.但是有时突然产品想让你把加载回 ...

  4. iOS开发 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突

    该篇文章摘自我的新浪博客,原文地址为: http://blog.sina.com.cn/s/blog_dcc636350102wavx.html UITableView 拥有属于自己的点击事件,在将一 ...

  5. android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件

    看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...

  6. iOS开发之解决隐藏tabbar后原位置无法响应点击事件的问题

    方法1 [self.tabBarController.tabBar setHidden:YES]; 这个方法有问题,虽然tabBar被隐藏了,但是那片区域变成了一片空白,无法被其他视图使用. 方法2 ...

  7. android发送点击事件,Android 模拟发送事件

    所有的事件一览 图片.png 一.TrackBall 事件 定义:等同于连续点击左右按键. 格式: roll (Default : trackball) 参数: dx 为横向移动偏移量,dy 为纵向的 ...

  8. 如何让页面初始化的时候实现点击事件_辅助程序实现黑盒自动化测试的常见问题...

    背景辅助程序(Accessibility)在大多数机型上具有重启设备后被激活的特性,可以完成Android测试框架(Uiautomator1.0.Uiautomator2.0)无法实现的功能.本文介绍 ...

  9. WebView点击图片看大图效果

    在webViewDelegate里面添加如下代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - (voi ...

  10. iOS OC与JS交互(WebView监听事件)

    在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...

最新文章

  1. 用Leangoo Scrum看板工具管理OKR-目标管理
  2. pip:成功解决pip下载时速度超慢(pip下载慢)的几种方法
  3. opengl加载显示3D模型off类型文件
  4. pytorch开发环境准备(学习资料自备)
  5. 书生阅读器打开gd文件出错_CAJ论文怎么打开?
  6. Creating a Pulsing Circle Animation
  7. 14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例
  8. sqlserver java odbc_Java JDBC------------------ODBC(SQLServer)链接
  9. 瑞利分布概率密度函数推导_IBL推导及实现
  10. Jmeter之Synchronizing Timer(同步集合点)
  11. C语言子程序调用的入口参数和出口参数,C语言与DOS系统接口技术
  12. python输出10行带标号的hello、world_Python输出hello world(各行命令详解)
  13. Eclipse里做JBPM工作流gpd.xml中文乱码问题解决
  14. 表单提交复选框(checkbox)注意事项
  15. 【历史上的今天】3 月 9 日:AlphaGo 成名之战;Mac 电脑设计者诞生;谷歌收购 Writely
  16. Awvs 12.x安装及使用教程
  17. 计算有向图可达矩阵Matlab实现
  18. 普通糖尿病人1周食谱
  19. 什么是 DOM 和 BOM?
  20. U盘修复“系统找不到指定文件”问题记录

热门文章

  1. mssql sql server 其它系统函数 parsename 点语法字符串分割函数应用简介
  2. 项目工作总结——人脸建模方法研究
  3. BZOJ1941: [Sdoi2010]Hide and Seek
  4. 自己对Java的一些认识
  5. C#基础笔记(第十天)
  6. zabbix server安装配置
  7. 创建自己的oracle解释计划
  8. [CQOI2015]选数
  9. [大数据之Sqoop] —— 什么是Sqoop?
  10. 【转载】【凯子哥带你学Framework】Activity界面显示全解析(下)