iOS 取出网页缓存与网页离线缓存
来源:互联网 发布:蓝牙控制小车app源码 编辑:程序博客网 时间:2024/05/16 09:58
1.取出网页缓存
在viewDidLoad中,
//有缓存就加载缓存,没缓存就从服务器加载- (void)viewDidLoad{NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) objectAtIndex:0]; NSString * path = [cachesPath stringByAppendingString:[NSString stringWithFormat:@"/Caches/%lu.html",(unsigned long)[[self.url absoluteString] hash]]]; NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; if (!(htmlString ==nil || [htmlString isEqualToString:@""])) { [self.webView loadHTMLString:htmlString baseURL:self.url]; }else{ NSURLRequest *request = [NSURLRequest requestWithURL:self.url]; [_webView loadRequest:request]; [self writeToCache]; }}
//写入缓存- (void)writeToCache{ NSString * htmlResponseStr = [NSString stringWithContentsOfURL:self.url encoding:NSUTF8StringEncoding error:Nil]; //创建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager]; //获取document路径 NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES) objectAtIndex:0]; [fileManager createDirectoryAtPath:[cachesPath stringByAppendingString:@"/Caches"] withIntermediateDirectories:YES attributes:nil error:nil]; //写入路径 NSString * path = [cachesPath stringByAppendingString:[NSString stringWithFormat:@"/Caches/%lu.html",(unsigned long)[[self.url absoluteString] hash]]]; [htmlResponseStr writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];}
2.网页离线缓存
网页离线缓存就是通过截取URLProtocol 来实现的。没有网络的时候会加载缓存内容,有网络或者弱网不会加载缓存。
实用的第三库:RNCachingURLProtocol
tips:
取出网页缓存,先显示缓存内容,等网页加载完毕再显示最新的网页内容。这样就不会一直Loading.界面友好
0 0
- iOS 取出网页缓存与网页离线缓存
- 网页离线缓存
- iOS缓存网页资源
- iOS开发之网页缓存
- IOS数据离线缓存与读取
- iOS之网页缓存html----NSURLCache-----NSURLProtocol
- iOS如何实现网页缓存(实现webView的缓存)
- IOS UIWebView 离线缓存
- iOS离线缓存
- 网页的缓存问题
- 网页缓存问题
- 网页使用无缓存
- 网页清除缓存方法
- 网页设置不缓存
- 消除网页缓存
- 不缓存网页
- 网页缓存头部设定
- PHP网页缓存技术
- BZOJ 1696: [Usaco2007 Feb]Building A New Barn新牛舍
- 【设计模式】java设计模式实现随机生成员工并应用反射
- docker 搭建registry私服
- 第九章 使用事务
- (iOS开发) 动态cell高度
- iOS 取出网页缓存与网页离线缓存
- java连接数据库(查询语句)
- MongoDB Shell 常用操作命令
- java基础(四)------ jdbc连接数Oracle数据库步骤及示例!
- 第3章:TTCN-3基础-笔记
- 在Asp.net中将GridView打印为word或者Excel
- 统计学习方法——k近邻法
- 淘宝图片放大镜JavaScript效果
- 如何严格设置php中session过期时间