截获webView点击事件
后台返回的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点击事件相关推荐
- WebView 实现JS效果和a标签的点击事件
2019独角兽企业重金招聘Python工程师标准>>> 目前很多android app都可以显示web页面的界面,嵌入式开发,这个界面一般都是WebView这个控件加载出来的,学习该 ...
- webview 模拟点击_Android如何基于坐标对View进行模拟点击事件详解
前言 大家应该都知道,在Android中,我们对于View进行模拟点击事件,很容易,比如调用View.performClick即可. 但是有些时候,我们想要更加精细的点击,比如View的某一区域或者某 ...
- Android在WebView中给图片设置点击事件
好久没有更新博客了,今天来个小知识点.我们知道在WebView中加载的是Html也面,在开发中都是Web前端人员写好以后给个链接我们去用webView进行loadUrl.但是有时突然产品想让你把加载回 ...
- iOS开发 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
该篇文章摘自我的新浪博客,原文地址为: http://blog.sina.com.cn/s/blog_dcc636350102wavx.html UITableView 拥有属于自己的点击事件,在将一 ...
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...
- iOS开发之解决隐藏tabbar后原位置无法响应点击事件的问题
方法1 [self.tabBarController.tabBar setHidden:YES]; 这个方法有问题,虽然tabBar被隐藏了,但是那片区域变成了一片空白,无法被其他视图使用. 方法2 ...
- android发送点击事件,Android 模拟发送事件
所有的事件一览 图片.png 一.TrackBall 事件 定义:等同于连续点击左右按键. 格式: roll (Default : trackball) 参数: dx 为横向移动偏移量,dy 为纵向的 ...
- 如何让页面初始化的时候实现点击事件_辅助程序实现黑盒自动化测试的常见问题...
背景辅助程序(Accessibility)在大多数机型上具有重启设备后被激活的特性,可以完成Android测试框架(Uiautomator1.0.Uiautomator2.0)无法实现的功能.本文介绍 ...
- 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 ...
- iOS OC与JS交互(WebView监听事件)
在iOS应用的开发过程中,我们经常会使用到WebView,当我们对WebView进行操作的时候,有时会需要进行源生的操作.那么我记下来就与大家分享一下OC与JS交互. 首先先说第一种方法,并没有牵扯O ...
最新文章
- 用Leangoo Scrum看板工具管理OKR-目标管理
- pip:成功解决pip下载时速度超慢(pip下载慢)的几种方法
- opengl加载显示3D模型off类型文件
- pytorch开发环境准备(学习资料自备)
- 书生阅读器打开gd文件出错_CAJ论文怎么打开?
- Creating a Pulsing Circle Animation
- 14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例
- sqlserver java odbc_Java JDBC------------------ODBC(SQLServer)链接
- 瑞利分布概率密度函数推导_IBL推导及实现
- Jmeter之Synchronizing Timer(同步集合点)
- C语言子程序调用的入口参数和出口参数,C语言与DOS系统接口技术
- python输出10行带标号的hello、world_Python输出hello world(各行命令详解)
- Eclipse里做JBPM工作流gpd.xml中文乱码问题解决
- 表单提交复选框(checkbox)注意事项
- 【历史上的今天】3 月 9 日:AlphaGo 成名之战;Mac 电脑设计者诞生;谷歌收购 Writely
- Awvs 12.x安装及使用教程
- 计算有向图可达矩阵Matlab实现
- 普通糖尿病人1周食谱
- 什么是 DOM 和 BOM?
- U盘修复“系统找不到指定文件”问题记录