在我们进行开发的时候大多时候从网上获取数据以后,用WKWebView加载出网页以后往往会有一些广告,会影响我们的APP上架。
- 解决办法:
在safari中打开网页链接如:http://jiankang.163.com/16/0216/21/BFVQ2GS10038002S.html
点击以后会弹出下面的界面:
接下来在这个界面上移动鼠标 ,在模拟器上对应的部分就会高亮 如2016-02-16 21:42部分高亮:
接下来就要在WKWebView中写相应的代码进行这些我们不需要部分的隐藏了。
注意:如果不做任何处理,你将会发现进入网页以后,广告还是要存在一会儿,在网页完全就在完毕以后才会消失,所以我们需要一进入网页的时候就将网页隐藏,在网页内容加载完毕的时候再显示网页。
_wkWebView.hidden = YES;
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
[webView evaluateJavaScript:@"document.getElementsByTagName('header')[0].hidden = true;
document.getElementsByClassName('m-share')[0].hidden = true;
document.getElementsByClassName('m-comment ui-list')[0].hidden = true;
document.getElementsByClassName('m-down m-down-tie')[0].hidden = true;
document.getElementsByClassName('m-video-recommond')[0].hidden = true;
document.getElementsByClassName('m-hotnews js-hotnews-1')[0].hidden = true;
document.getElementsByClassName('m-hotnews js-hotnews-2')[0].hidden = true;
document.getElementsByClassName('m-vedios js-vedios')[0].hidden = true;
document.getElementsByClassName('m-bottom-banner')[0].hidden = true;
document.getElementById('instant-news').hidden = true;" completionHandler:^(id evaluate, NSError * error) {
}];
//redirect是跳转页面的地址中的一个关键字。进入网页以后,加载完毕以后会跳转到另外一个页面,所以我们等它跳转到加载完毕哪个页面,webView.URL的路径中包含了redirect以后,再显示网页。
if ([webView.URL.absoluteString rangeOfString:@"redirect"].location != NSNotFound) {
_wkWebView.hidden = NO;
[LCLoadingHUD hideInView:self.view];
}
}