IOS网络第七天WebView-02WebView和网页的交互2,删除大众点评多余文字,加上蒙版进度
************
#import "HMViewController.h" @interface HMViewController () <UIWebViewDelegate>
@property (nonatomic, weak) UIActivityIndicatorView *loadingView;
@end @implementation HMViewController /**
test.html存在于服务器,里面的html和js代码,我们是无法修改的 如果test.html显示在手机端,把那个ul去掉 */ - (void)viewDidLoad
{
[super viewDidLoad];
// 1.webView
UIWebView *webView = [[UIWebView alloc] init];
webView.frame = self.view.bounds;
webView.delegate = self;
// 伸缩页面至填充整个webView
webView.scalesPageToFit = YES;
// 隐藏scrollView
webView.scrollView.hidden = YES;
[self.view addSubview:webView]; // 2.加载网页
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.dianping.com/tuan/deal/5501525"]];
[webView loadRequest:request]; // 3.创建圈圈
UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[loadingView startAnimating];
loadingView.center = CGPointMake(, );
[self.view addSubview:loadingView];
self.loadingView = loadingView;
} // OC -> JS
// 在OC中调用JS #pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// 执行JS代码,将大众点评网页里面的多余的节点删掉
// var html = document.body.innerHTML;
// NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];
// NSLog(@"%@", html); NSMutableString *js1 = [NSMutableString string];
// 0.删除顶部的导航条
[js1 appendString:@"var header = document.getElementsByTagName('header')[0];"];
[js1 appendString:@"header.parentNode.removeChild(header);"]; // 1.删除底部的链接
[js1 appendString:@"var footer = document.getElementsByTagName('footer')[0];"];
[js1 appendString:@"footer.parentNode.removeChild(footer);"];
[webView stringByEvaluatingJavaScriptFromString:js1]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSMutableString *js2 = [NSMutableString string];
// 2.删除浮动的广告
[js2 appendString:@"var list = document.body.childNodes;"];
[js2 appendString:@"var len = list.length;"];
[js2 appendString:@"var banner = list[len - 1];"];
[js2 appendString:@"banner.parentNode.removeChild(banner);"];
[webView stringByEvaluatingJavaScriptFromString:js2]; // 显示scrollView
webView.scrollView.hidden = NO; // 删除圈圈
[self.loadingView removeFromSuperview];
});
} @end
IOS网络第七天WebView-02WebView和网页的交互2,删除大众点评多余文字,加上蒙版进度的更多相关文章
- IOS网络第七天WebView-04仿网易新闻详情
*************** #import "HMViewController.h" @interface HMViewController () @end @implemen ...
- IOS网络第七天WebView-03js中调用webView中的代码
*********** #import "HMViewController.h" @interface HMViewController () <UIWebViewDeleg ...
- IOS网络第七天WebView-01WebView和网页的交互1
******** #import "HMViewController.h" @interface HMViewController () <UIWebViewDelegate ...
- 【iOS】使用safari对webview进行调试
[iOS]使用safari对webview进行调试 在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到ma ...
- 【读书笔记】iOS网络-错误处理的经验法则
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了, ...
- ios网络学习------4 UIWebView的加载本地数据的三种方式
ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...
- iOS网络编程模型
iOS网络编程层次结构也分为三层: Cocoa层:NSURL,Bonjour,Game Kit,WebKit Core Foundation层:基于 C 的 CFNetwork 和 CFNetServ ...
- iOS网络协议 HTTP/TCP/IP浅析
一.TCP/IP协议 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...
- iOS基础 - iOS网络基础
一.网络访问的四个步骤 l 第一步:确定地址URL l 第二步:建立请求 l 第三步:建立并启动连接 l 第四步:连接完成,处理结果 备注:URL,统一资源定位符(URL,英语Uniform Reso ...
随机推荐
- C and SQL data types for ODBC and CLI
C and SQL data types for ODBC and CLI This topic lists the C and SQL data types for ODBC and CLI a ...
- AngularJS 动画
AngularJS 提供了动画效果,可以配合 CSS 使用. AngularJS 使用动画需要引入 angular-animate.min.js 库. <script src="htt ...
- Android MarginEnd与MarginStart (RTL)
Android MarginLeft与MarginStart的区别http://blog.csdn.net/zhufuing/article/details/40181815 在写layout布局的时 ...
- RabbitMQ的几种应用场景
RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”,期间可根据规则路由.缓存.持久化消息.“生产者”也即message发送者以下简称P,相对应的“消费者”乃message接收者 ...
- 前端知识杂烩(Javascript篇)
1. JavaScript是一门什么样的语言,它有什么特点?2.JavaScript的数据类型都有什么?3.请描述一下 cookies,sessionStorage 和 localStorage 的区 ...
- BZOJ 1305: [CQOI2009]dance跳舞 二分+最大流
1305: [CQOI2009]dance跳舞 Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲 ...
- css3clock.js - 一个用CSS3与纯js实现的简单时钟
前言 项目代码明细可以查看我Github上的源码:https://github.com/nelsonkuang/css3clock.js 实现思路 主要是用CSS3控制时针.分针和秒针旋转:时针每12 ...
- 树链剖分+线段树 HDOJ 5029 Relief grain(分配粮食)
题目链接 题意: 分粮食我就当成涂色了.有n个点的一棵树,在a到b的路上都涂上c颜色,颜色可重复叠加,问最后每一个点的最大颜色数量的颜色类型. 思路: 首先这题的输出是每一个点最后的情况,考虑离线做法 ...
- 常用.NET库使用总结
Json.NET 获取类实例对应的jtoken:JObject.FromObject() 获取数组实例对应的jtoken:JArray.FromObject() Json.NET将枚举转换为int R ...
- [DataMining]WEEK1 - text-retrieval and search engine
What does a computer have to do in order to understand a natural language sentence? What is ambiguit ...