【问题标题】:Save PDF which is displayed by UIWebView locally将 UIWebView 显示的 PDF 保存到本地
【发布时间】:2012-03-23 02:40:49
【问题描述】:

我有一个UIViewController 和一个UIWebView,它显示一个pdf 文件,具体取决于之前在UITableView 中单击了哪一行。现在我想为用户添加一个按钮以在本地保存此 pdf 文件以供离线使用。 然后是第二个UITableView,它应该显示保存的pdf 的名称,单击它会出现另一个UIViewController,并在UIWebView 上离线显示保存的pdf。 什么是开始的好方法? 谢谢

【问题讨论】:

    标签: ios objective-c iphone pdf uiwebview


    【解决方案1】:

    你可以试试这个方法:
    1)在包含UIWebViewView中添加一个按钮
    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];
    }
    

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

    【讨论】:

    • 谢谢。我现在在哪里可以找到我保存的数据?
    • 在“Cache”文件夹中(参见代码中的 cachePath 变量)。当您想要显示所有保存的 pdf 时,首先检查缓存文件夹,检查该文件夹中存在哪些文件。
    • 好吧,我说错了。您创建了一个名为 cachePath 的目录。如何查看存储在此文件夹中的内容?对不起,我是一个初学者,现在专注于学习如何在应用程序中保存数据。
    • 嗨。我得到了它。花了我一些时间。其实还有一个问题。如果我在表格视图中显示缓存文件夹的内容,我还会显示所有其他文件夹和内容。有没有办法只显示我保存的数据而不显示 .DS_Store 或 com.lmb.TestApp 之类的内容?
    • self.title 只是一个字符串。您可以将所需内容附加到此字符串。 NSString *filename = [self.title stringByAppendingString:@".pdf"];
    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    相关资源
    最近更新 更多