iOS如何实现网页缓存(实现webView的缓存)

楼主提供一个最简单的方法:

以下代码直接复制即可使用.


viewDidLoad里边代码如下:_urlStr为网页链接

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) objectAtIndex:0];

    NSString * path = [cachesPathstringByAppendingString:[NSStringstringWithFormat:@"/Caches/%lu.html",(unsignedlong)[_urlStrhash]]];

    NSString *htmlString = [NSStringstringWithContentsOfFile:pathencoding:NSUTF8StringEncodingerror:nil];

    

    if (!(htmlString ==nil || [htmlString isEqualToString:@""])) {

        [_webViewloadHTMLString:htmlStringbaseURL:[NSURLURLWithString:_urlStr]];

    }else{

        NSURL *url = [NSURLURLWithString:_urlStr];

        NSURLRequest *request = [NSURLRequestrequestWithURL:url];

        [_webViewloadRequest:request];

        [selfwriteToCache];

    }


/**

 * 网页缓存写入文件

 */

- (void)writeToCache

{

    NSString * htmlResponseStr = [NSStringstringWithContentsOfURL:[NSURLURLWithString:_urlStr]encoding:NSUTF8StringEncodingerror:Nil];

    //创建文件管理器

    NSFileManager *fileManager = [[NSFileManageralloc]init];

    //获取document路径

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,      NSUserDomainMask, YES) objectAtIndex:0];

    [fileManager createDirectoryAtPath:[cachesPathstringByAppendingString:@"/Caches"]withIntermediateDirectories:YESattributes:nilerror:nil];

    //写入路径

    NSString * path = [cachesPathstringByAppendingString:[NSStringstringWithFormat:@"/Caches/%lu.html",(unsignedlong)[_urlStrhash]]];

    

    [htmlResponseStr writeToFile:pathatomically:YESencoding:NSUTF8StringEncodingerror:nil];

}


猜你喜欢

转载自blog.csdn.net/zhaotao0617/article/details/52385655