UIWebView 點(diǎn)擊圖片跳轉(zhuǎn)控制器

http://www.itdecent.cn/p/5b3d1933700f 格式有點(diǎn)亂,整理了下

JS代碼:遍歷網(wǎng)頁(yè)源碼中“img” 節(jié)點(diǎn),并為每個(gè)節(jié)點(diǎn)添加一個(gè)事件。

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)");
    }
}

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

viewDidLoad

- (void)viewDidLoad{
    [super viewDidLoad];
    
    NSURL *url = [NSURL URLWithString:@"http://www.itdecent.cn/p/944dbb35928e"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    [self.myWebView loadRequest:request];

    self.myWebView.delegate = self;

    //加載js文件
    NSString *jsStr = [NSString stringWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"Findimg" withExtension:@"js"] encoding:NSUTF8StringEncoding error:nil];

    [self.myWebView stringByEvaluatingJavaScriptFromString:jsStr];
}

delegate:

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

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

    NSString* path = [[request URL] absoluteString];
    NSLog(@"path: %@",path);
    
    //添加關(guān)鍵字進(jìn)行是否跳轉(zhuǎn)的篩選
    if ([path rangeOfString:@"jpg"].location != NSNotFound){

        ImgShowViewController* img = [[ImgShowViewController alloc] init];

        [self presentViewController:img animated:YES completion:nil];

        return NO;
    }else{
        
        return YES;
    }
}

在完成的時(shí)候,stringByEvaluatingJavaScriptFromString方法嵌入頁(yè)面中

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

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

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

  • 剛參加工作的時(shí)候,在csdn上寫(xiě)過(guò)類(lèi)似的文章,今天維護(hù)代碼,覺(jué)得還是有一點(diǎn)點(diǎn)價(jià)值的,特來(lái)分享一下,大家多拍磚。 準(zhǔn)...
    KKKKaras閱讀 3,038評(píng)論 8 17
  • iOS開(kāi)發(fā)系列--網(wǎng)絡(luò)開(kāi)發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開(kāi)發(fā),例如說(shuō)新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,035評(píng)論 2 7
  • //設(shè)置尺寸為屏幕尺寸的時(shí)候self.window = [[UIWindow alloc] initWithFra...
    LuckTime閱讀 965評(píng)論 0 0
  • UIWebView加載本地HTML5文件一.準(zhǔn)備HTML文件及其資源文件使用UIWebView加載本地的HTML文...
    wzf_taker閱讀 1,255評(píng)論 0 3
  • 一、簡(jiǎn)介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來(lái)越多的移動(dòng)開(kāi)發(fā)者選擇使用HTML5來(lái)進(jìn)行混合開(kāi)發(fā),不僅節(jié)約...
    RainyGY閱讀 2,003評(píng)論 1 12

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