UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在viewDidLoad中将百度主页加载到这个控件中,代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
UIWebView *web = [[UIWebView alloc]init];
web.delegate = self;
web.frame = self.view.bounds;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[web loadRequest:request];
[self.view addSubview:web];
}
通过UIWebView的代理方法
webViewDidFinishLoad
获取整个页面,代码如下:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];
NSLog(@"%@",html);
}
获取页面navs导航:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:@"var removeObj = document.getElementById('navs');"];
[webView stringByEvaluatingJavaScriptFromString:@"removeObj.parentNode.removeChild(removeObj);"];
}
删除一些不想要的东西
- (void)webViewDidFinishLoad:(UIWebView *)webView {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSMutableString *js = [NSMutableString string];
//删除常用网址
[js appendString:@"var removeNav = document.getElementById('nav');"];
[js appendString:@"removeNav.parentNode.removeChild(removeNav);"];
//删除购物
[js appendString:@"var removeShop = document.getElementById('shopping');"];
[js appendString:@"removeShop.parentNode.removeChild(removeShop);"];
//删除实时热点
[js appendString:@"var removeHot = document.getElementById('hotword');"];
[js appendString:@"removeHot.parentNode.removeChild(removeHot);"];
//删除底部bottom
[js appendString:@"var removeBottom = document.getElementById('bottom');"];
[js appendString:@"removeBottom.parentNode.removeChild(removeBottom);"];
//执行JS代码
[webView stringByEvaluatingJavaScriptFromString:js];
});
}
最后的效果:
本文作者:
Aeron_Xie
最后更新: 2023年03月25日 22:39:56
本文链接: http://aeronxie.github.io/post/b3f0ba92.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!
最后更新: 2023年03月25日 22:39:56
本文链接: http://aeronxie.github.io/post/b3f0ba92.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!