美文网首页收藏ios
iOS获取WebView中所有图片的地址

iOS获取WebView中所有图片的地址

作者: 薄凉_简书 | 来源:发表于2017-05-16 17:18 被阅读1709次

    UIWebView

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        //这里是js,主要目的实现对url的获取
        static  NSString * const jsGetImages =
        @"function getImages(){\
        var objs = document.getElementsByTagName(\"img\");\
        var imgScr = '';\
        for(var i=0;i<objs.length;i++){\
        imgScr = imgScr + objs[i].src + '+';\
        };\
        return imgScr;\
        };";
        
        [webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法
        NSString *urlResult = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];
        NSArray *urlArray = [NSMutableArray arrayWithArray:[urlResult componentsSeparatedByString:@"+"]];
        //urlResurlt 就是获取到得所有图片的url的拼接;mUrlArray就是所有Url的数组
        NSLog(@"--%@",urlArray);
    }
    

    WKWebView

    - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation
    {
        static  NSString * const jsGetImages =
        @"function getImages(){\
        var objs = document.getElementsByTagName(\"img\");\
        var imgScr = '';\
        for(var i=0;i<objs.length;i++){\
        imgScr = imgScr + objs[i].src + '+';\
        };\
        return imgScr;\
        };";
        
        [webView evaluateJavaScript:jsGetImages completionHandler:nil];
        [webView evaluateJavaScript:@"getImages()" completionHandler:^(id _Nullable result, NSError * _Nullable error) {
            
            NSArray *urlArray = [NSMutableArray arrayWithArray:[result componentsSeparatedByString:@"+"]];
            //urlResurlt 就是获取到得所有图片的url的拼接;mUrlArray就是所有Url的数组
            NSLog(@"--%@",urlArray);
        }];
    }
    

    UIWebView里图片自适应

    webView.scalesPageToFit = YES;//这一句代码,貌似就适配了
    
    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        NSString *js = @"function imgAutoFit() { \
        var imgs = document.getElementsByTagName('img'); \
        for (var i = 0; i < imgs.length; ++i) { \
        var img = imgs[i]; \
        img.style.maxWidth = %f; \
        } \
        }";
    
        js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20];
    
        [webView stringByEvaluatingJavaScriptFromString:js];
        [webView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];
    }
    

    [感谢大神](http://www.jianshu.com/p/4523eafb4cd4

    相关文章

      网友评论

        本文标题:iOS获取WebView中所有图片的地址

        本文链接:https://www.haomeiwen.com/subject/znwlxxtx.html