73.iOS UIWebView重定向问题处理 RNCachingURLProtocol做缓存出现的重定向问题
2015-09-08 15:20
344 查看
connection: willSendRequest: redirectResponse:这个方法在请求将要被发送出去之前会调用
返回值是一个NSURLRequest,就是那个真正将要被发送的请求
第二个参数request就是被重定向处理过后的请求
第三个参数response是触发重定向请求的响应包.默认是支持跳转的。
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
{
NSURLRequest *newRequest = request;
if (response) {
NSLog(@"redirect!!!"); //如,请求google的网站时会有跳转发生
newRequest = nil; //拒绝跳转
}
return newRequest;
}
最让我不解的是
RNCachingURLProtocol这个开源代码为什么对NSURLResponse(即服务器的响应)也做了缓存---这个问题引起了一个我们WebView缓存的重大bug--当NSURLResponse让我们跳转时(我们路由器有一个注册跳转,就是像电影院那样的免费Wifi,但是需要你手机号注册,不注册无法访问网络---坑爹的我缓存了手机号注册界面),于是乎,以后访问该网页都显示缓存的
手机号注册界面
参考了:http://blog.csdn.net/qianlima210210/article/details/17843805
返回值是一个NSURLRequest,就是那个真正将要被发送的请求
第二个参数request就是被重定向处理过后的请求
第三个参数response是触发重定向请求的响应包.默认是支持跳转的。
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
{
NSURLRequest *newRequest = request;
if (response) {
NSLog(@"redirect!!!"); //如,请求google的网站时会有跳转发生
newRequest = nil; //拒绝跳转
}
return newRequest;
}
最让我不解的是
RNCachingURLProtocol这个开源代码为什么对NSURLResponse(即服务器的响应)也做了缓存---这个问题引起了一个我们WebView缓存的重大bug--当NSURLResponse让我们跳转时(我们路由器有一个注册跳转,就是像电影院那样的免费Wifi,但是需要你手机号注册,不注册无法访问网络---坑爹的我缓存了手机号注册界面),于是乎,以后访问该网页都显示缓存的
手机号注册界面
参考了:http://blog.csdn.net/qianlima210210/article/details/17843805
相关文章推荐
- 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
- Android机型适配之痛
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应
- Android中动态的更改selector中某张图片的属性
- 微信公众帐号开发教程第13篇-图文消息全攻略
- 微信公众帐号开发教程第12篇-符号表情的发送(下)
- JS中的call()和apply()方法
- 微信公众帐号开发教程第11篇-符号表情的发送(上)
- WebView
- android 组件设置屏幕大小
- swift 下拉图片变大 coreData 声明数组变量
- 微信公众帐号开发教程第10篇-解析接口中的消息创建时间CreateTime
- cocos2d-x 接入android ,登录第三方SDK时屏幕不断闪烁刷屏的问题解决
- 微信公众帐号开发教程第9篇-QQ表情的发送与接收
- Unity Surface Shader输入结构体的定义
- android下升级软件介绍
- 微信公众帐号开发教程第8篇-文本消息中使用网页超链接
- View的Touch事件分发流程
- 微信公众帐号开发教程第7篇-文本消息中换行符的使用
- Android ListView嵌套ListView的实现方式