iOS之webView与js交互

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

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交互)