用于脱机视图的UIWebView复制缓存数据

时间:2015-06-01 07:33:57

标签: ios objective-c caching uiwebview

我想将缓存数据复制到数据库(sqlite / coreData),以便我可以在离线(没有Internet)时查看“在Safari中读取列表”。我在Xcode UIWEBVIEW download , save HTML file and show阅读了代码 以下是: -

- (void)viewDidLoad
{

    NSURL *url = [NSURL URLWithString:@"http://livedemo00.template-help.com/wt_37587/index.html"]; 


    //[WEBVIEW loadRequest:reqURL];


    // Determile cache file path
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"index.html"];   

    // Download and write to file

    NSData *urlData = [NSData dataWithContentsOfURL:url];
    [urlData writeToFile:filePath atomically:YES];

    // Load file in UIWebView
    [WEBVIEW loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];      



    [super viewDidLoad];
}

但是这段代码的问题在于它在离线状态下不显示图像。

所以我认为将数据从缓存保存到数据库可能是另一种选择。任何人都可以共享一些示例代码,将网站内容和图像一起复制到数据库。

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用ASIWebPageRequest,例如here

如果可达性得到连接

NSCachedURLResponse* response = [[NSURLCache sharedURLCache] 
                                     cachedResponseForRequest:[webView request]];
NSData* data = [response data];

将数据存储在本地,并在脱机可达性时使用它。