[IOS]Uiwebview+js交互 之圖片點(diǎn)擊事件

剛參加工作的時(shí)候,在csdn上寫過類似的文章,今天維護(hù)代碼,覺得還是有一點(diǎn)點(diǎn)價(jià)值的,特來分享一下,大家多拍磚。

準(zhǔn)備js文件


functionsetImageClickFunction(){

varimgs = document.getElementsByTagName("img");

for(vari=0;i

varsrc = imgs[i].src;

imgs[i].setAttribute("onClick","getImg(src)");

}

document.location = imageurls;}

functiongetImg(src){

varurl=src;

document.location = url;

}


這段js代碼的作用是遍歷網(wǎng)頁源碼中“img” 節(jié)點(diǎn),并為每個(gè)節(jié)點(diǎn)添加一個(gè)事件。


- (void)viewDidLoad {


[superviewDidLoad];


// Do any additional setup after loading the view, typically from a nib.


UIWebView*web=[[UIWebViewalloc]initWithFrame:self.view.frame];


[self.viewaddSubview:web];


web.delegate=self;


[webstringByEvaluatingJavaScriptFromString:[NSStringstringWithContentsOfURL:[[NSBundlemainBundle]URLForResource:@"Findimg"withExtension:@"js"]encoding:NSUTF8StringEncodingerror:nil]];


[webloadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:@"http://www.itdecent.cn/p/316631f145d6"]]];


}





-(void)webViewDidFinishLoad:(UIWebView*)webView


{


[webViewstringByEvaluatingJavaScriptFromString:@"setImageClickFunction()"];


}



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


{


NSString*path=[[requestURL]absoluteString];


NSLog(@"%@",path);


if([pathrangeOfString:@"jpg"].location!=NSNotFound)//添加關(guān)鍵字進(jìn)行是否跳轉(zhuǎn)的篩選


{


ImgShowViewController* img=[[ImgShowViewControlleralloc]init];


img.imgUrl=path;


[selfpresentViewController:imganimated:YEScompletion:nil];


returnNO;


}


else


{returnYES;


}


}





讓webview加載定義好的js文件 在完成的時(shí)候,stringByEvaluatingJavaScriptFromString方法嵌入頁面中


最后用于得到uiwebview所有的鏈接,yes? no? 決定是否跳轉(zhuǎn),判斷條件可以用jpg,png后綴做判斷

這樣在Uiwebview中點(diǎn)擊圖片,會得到圖片的url之后就交給你了~~

9/14 更新:如果嵌套在tableView中,記得將該cell 設(shè)置為

cell.selectionStyle=UITableViewCellSelectionStyleNone;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來越多的移動開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不僅節(jié)約...
    RainyGY閱讀 2,002評論 1 12
  • 一、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來越多的移動開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不...
    寶寶teacher閱讀 2,448評論 3 15
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,029評論 2 7
  • JSBridge 1. Why do we need JSBridge? 2. Why is “JS”Bridge...
    loveqin閱讀 9,696評論 0 7
  • 前言 關(guān)于UIWebView的介紹,相信看過上文的小伙伴們,已經(jīng)大概清楚了吧,如果有問題,歡迎提問。 本文是本系列...
    CoderLF閱讀 9,307評論 2 12

友情鏈接更多精彩內(nèi)容