关闭

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

标签: iOS网页缓存webView缓存iOS写入文件读取WKWebView缓存
6357人阅读 评论(2) 收藏 举报
分类:

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

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


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];

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52676次
    • 积分:711
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:5篇
    • 译文:1篇
    • 评论:25条
    文章分类
    最新评论