iOS之webView与js交互

作者: 李二侠 | 来源:发表于2017-03-23 10:23 被阅读795次

iOS开发中经常需要与webView进行一些交互操作,比如获取网页上面的title,Image,content等等。

1.获取网页的标题

1 )UIWebView获取title的方法
NSString *resurltContent = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
2 )WKWebView获取title的方法

 [webView evaluateJavaScript:@"document.title" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
        
        NSString *resurlt = [NSString stringWithFormat:@"%@",response];
        NSLog(@"这是获取到的标题%@", resurlt);
        
    }];

2.获取网页上的图片

1 )UIWebView获取Image的方法

  //这里是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;\
    };";
    //注入JS方法
    [webView stringByEvaluatingJavaScriptFromString:jsGetImages];
    //调用方法,获取到了网页上所有的图片,可以根据自己需要从存放图片Url数组里面获取
    NSString *resurlt =  [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];
    if (resurlt.length) {
        NSArray *urlArr = [resurlt componentsSeparatedByString:@"+"];
        NSLog(@"这是获取到的存放图片Url的数组%@",urlArr);
    }

2 )WKWebView获取Image的方法

    //注入JS方法
    [webView evaluateJavaScript:jsGetImages completionHandler:^(id _Nullable response, NSError * _Nullable error) {
    }];
    //调用方法,获取到了网页上所有的图片,可以根据自己需要从存放图片 Url数组里面获取
    [webView evaluateJavaScript:@"getImages()" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
      
     NSString *resurlt = [NSString stringWithFormat:@"%@",response];
        if (resurlt.length) {
            NSArray *urlArr = [resurlt componentsSeparatedByString:@"+"];
            NSLog(@"这是获取到的存放图片Url的数组%@",urlArr);
        }
        
    }];

3.获取网页上的文章内容

1 )UIWebView获取文章内容的方法

    NSString *resurltContent = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText"];

12)WKWebView获取文章内容的方法

  [webView evaluateJavaScript:@"document.body.innerText" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
   
     NSString *resurlt = [NSString stringWithFormat:@"%@",response];
     NSLog(@"这是获取到的文章内容%@", result);

   }];

4.获取网页高度

1 )UIWebView获取网页高度

CGFloat webViewHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight" ] floatValue];

1 )WKWebView获取网页高度

  [webView evaluateJavaScript:@"document.body.innerText" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
   
     CGFloat webViewHeight = [response floatValue];
     NSLog(@"这是获取的网页高度%f", result);

   }];

相关文章

网友评论

    本文标题:iOS之webView与js交互

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