来自 电脑系统 2019-09-11 14:01 的文章
当前位置: 金沙澳门官网网址 > 电脑系统 > 正文

关于UIWebView网页数据本地缓存原理和实际使用,

这段日子我做的项目中须要用到UIWebView的离线缓存作用,本来满心快乐的想着在UIWebView的代理方法中看看有未有啥代理方法能够直接完事缓存的意义,结果要么太天真了,后来互连网检索了须臾间(首要参照了在code4app上面rusking作业对UIWebView离线浏览的代码达成(地址 (NSCachedURLResponse *金沙澳门官网网址 ,)cachedResponseForRequest:(NSURLRequest *)request 这几个主意,那大家如若重写那几个类,就能够实现地点缓存的指标了。

代码: KLURLCache

下边是大致的逻辑

博客:@火柴堂弟们

1 判定央浼中的request 是还是不是利用get方法,据资料体现一些本土乞请的协商也会进到这些方法里面来,所以在率先部,要把不相干的呼吁解除掉。

网络找了众多资料,写的好的是叁个美国人写的但也是二〇一一年写的..非常多东西已经过时期码风格也是MRC.

2 剖断缓存文件夹里面是或不是留存该公文,假若存在,继续决断文件是还是不是过期,要是过期,则删除。假如文件并未有过期,则提取文件,然后组成NSCacheULX570LResponse重返到方法个中。

国内某个人翻译过来,自个儿写成汉语版,看了眨眼之间间也并未有DEMO代码. 查了其它的一对稿子试了下,大四只是在理论论.都 没有代

3在有网络的事态下,若是文件夹中不设有该公文,则动用NSConnection那一个类发网络央浼,再把再次来到的data和response 数据本地化存储起来,然后组成NSCacheUTiguanLResponse重返到方法个中。

码DMEO.以为研讨起来费时间. 后来找一份实当代码.也会有相关 博客表明.代码是MRC 有些措施也过期了..本人正是参照那份

4之中BaseTools和其他没有在本.m文件中定义的类为常用的工具类,这里不一一张开了。

代码实现,并做了一部分革新.

大概逻辑就那样多,话不多说,直接看代码完成:

始建二个类承袭 NSUENCORELCache

#import "CustomURLCache.h"

@interface KLURLCache : NSURLCache

#import "NSObject+Network.h"

重写那些艺术,,该措施是安装 内部存款和储蓄器 与 磁盘缓存 空间大小的

#import "BaseTools.h"

- (instancetype)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(NSString *)path{

if (self = [super initWithMemoryCapacity:memoryCapacity diskCapacity:diskCapacity diskPath:path]) {

if {

_diskPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

_responseInfoDict = [NSMutableDictionary dictionaryWithCapacity:0];

}else{

_diskPath = path;

}

}

return self;

}

@interface CustomURLCache

重大的一步

本文由金沙澳门官网网址发布于电脑系统,转载请注明出处:关于UIWebView网页数据本地缓存原理和实际使用,

关键词: