Сохранить PDF, который отображается UIWebView локально - PullRequest
3 голосов
/ 05 марта 2012

У меня есть UIViewController с UIWebView, который отображает PDF-файл в зависимости от того, какая строка была нажата ранее в UITableView. Теперь я хочу добавить кнопку для пользователя, чтобы сохранить этот файл PDF локально для автономного использования. Затем появляется второй UITableView, который должен отображать имя сохраненного файла PDF, и, нажав на него, появляется другой UIViewController, который отображает сохраненный файл PDF в режиме UIWebView в автономном режиме. Какой будет хороший способ начать? Спасибо

1 Ответ

5 голосов
/ 05 марта 2012

Вы можете попробовать это следующим образом:
1) Добавить кнопку в View, содержащую UIWebView
2) При нажатии кнопки сохранить файл, показанный в UIWebView
(примечание: в iOS5 вы должны сохранить данные, которые можно легко воссоздать или загрузить в каталог caches)

- (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) При запуске приложения необходимо проверить, какие файлы хранятся (iOS может удалить каталог кеша, если его недостаточно)место на айфоне)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...