您的位置:首页 > 移动开发

iOS中UIWebView使用JS交互:实现图片的点击

2016-11-16 13:35 519 查看
网页中图片的节点是 img,利用js 得到图片节点下的所有地址,并且为每一个图片添加点击事件

点击时,触发一个url,即图片的地址。

利用uiwebview代理,得到地址,并进行一个后续的一个处理。

step 1: 准备js文件

function setImageClickFunction(){
var imgs = document.getElementsByTagName("img");
for (var i=0;i<imgs.length;i++){
var src = imgs[i].src;
imgs[i].setAttribute("onClick","getImg(src)");

}

document.location = imageurls;
}

function getImg(src){
var url=src;
document.location = url;

}


将文件保存为js后缀,加入工程

step 2 加载js文件

web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];
web.delegate = self;
[web setScalesPageToFit:NO];
web.scrollView.alwaysBounceVertical=YES;
web.userInteractionEnabled=YES;

[web stringByEvaluatingJavaScriptFromString:[NSString stringWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"findImg" withExtension:@"js"] encoding:NSUTF8StringEncoding error:nil]];
web.scrollView.scrollEnabled=NO;
[web sizeToFit];
[scrollView addSubview:web];

当uiwebview结束加载时,调用js的方法

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView  stringByEvaluatingJavaScriptFromString:@"setImageClickFunction()"];
}

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

NSString *path=[[request URL] absoluteString];
NSLog(@"%@",path);
if([path rangeOfString:@"http://qiniudn.com"].location !=NSNotFound)
{

[self getNewImgview:path];
return NO;

}
else
{
return YES;
}

}

最后用于得到uiwebview所有的链接,yes  no  决定是否跳转,判断条件可以用jpg,png后缀做判断

这样在uiwebview中点击图片,会得到图片的url
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UIWebView javascript