使用UIWebView在iPhone上缓存网页

时间:2010-07-27 20:23:12

标签: iphone objective-c cocoa-touch

如何在互联网可用时加载网页并将其缓存以供离线使用,当互联网再次可用时,它会更新到最新版本?

1 个答案:

答案 0 :(得分:1)

我假设有一些基本技能可用。这是一般概要。

使用以下网址获取网页:

NSData *data = [NSData dataWithContentsOfUrl:yoururl];

如果成功,请使用以下方式在本地存储文件:

-(NSString*)cacheFile
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
                                                          NSUserDomainMask, YES);
    return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"cached.html"];
}

[[NSFileManager defaultManager]
               createFileAtPath:[self cacheFile] contents:data attributes:nil];

让webview显示本地页面:

NSData *data = [NSData dataWithContentsOfFile:[self cacheFile]
                       options:nil error:nil];

[webView loadData:data MIMEType:@"text/html"
         textEncodingName:@"UTF-8" baseURL:yoururl];

不知道你是否可以使用我在这里放置的所有nil指针,但如果它不起作用,只需查看文档。 添加一些返回值检查......