[IOS]Uiwebview+js,點選圖片得到地址
阿新 • • 發佈:2018-11-09
網上的教程你複製我,我複製你,特別容易誤導像我這樣的新手,好不容易找到一個方法,卻因為 網上給的js程式碼用了系統的click方法,導致一直無效。
網頁中圖片的節點是 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; }
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