保存由UIWebView本地显示的PDF

hal*_*y4b 3 pdf iphone objective-c uiwebview ios

我有一个UIViewControllerUIWebView它显示根据该行已在之前点击PDF文件UITableView.现在我想为用户添加一个按钮,以便在本地保存此pdf文件以供离线使用.然后有一秒钟UITableView应该显示已保存的pdf的名称,然后点击它会UIViewController出现另一个,并在UIWebView离线状态下显示保存的pdf .什么是一个好的开始方式?谢谢

Ser*_*nov 5

您可以这样尝试:
1)向View包含按钮添加按钮UIWebView
2)按下按钮保存显示的文件UIWebView
(注意:在iOS 5中,您必须保存可以轻松重新创建或下载到缓存目录的数据)

- (IBAction)buttonPress:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachePath = [paths objectAtIndex:0];
    BOOL isDir = NO;
    NSError *error;
    //You must check if this directory exist every time
    if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir   == NO)
    {
        [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error];
    }
    NSString *filePath = [cachePath stringByAppendingPathComponent:@"someName.pdf"]
    //webView.request.URL contains current URL of UIWebView, don't forget to set outlet for it
    NSData *pdfFile = [NSData dataWithContentsOfURL:webView.request.URL];
    [pdfFile writeToFile:filePath atomically:YES];
}
Run Code Online (Sandbox Code Playgroud)

3)在应用程序启动时,您需要检查存储的文件(如果iPhone上没有足够的空间,iOS可以删除缓存目录)