Как отобразить NSData с PDF-контентом в iOS UIWebView?

Я пытаюсь показать PDF в своем приложении для iPad черезUIWebView как показано ниже.

NSData * responseData = [NSURLConnection sendSynchronousRequest:mutableUrlRequest returningResponse:nil error:nil];
[pdfWebView loadData:responseData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 

Но это нет работа. Это правильный способ отображения? Если нет, то кто-нибудь может помочь мне показать PDF-файл в UIWebView или любым другим полезным способом.

Спасибо !

 Valent Richie07 июн. 2013 г., 03:25
Любая причина, почему вы не загружаете URL-адрес PDF непосредственно в веб-представлении?
 Easwaramoorthy K07 июн. 2013 г., 05:25
@verbumdei Причина в том, что мое требование состоит в том, чтобы получить данные PDF, нажав сервлет Java.

Ответы на вопрос(6)

Как сохранить NSData (файл pDF) в каталог документов:

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *documentFolderPath = [searchPaths objectAtIndex: 0];
    NSString *imagePath = [documentFolderPath stringByAppendingPathComponent:@"yourPdfFileName.pdf"];

NSFileManager *filemanager=[NSFileManager defaultManager];
    if(![filemanager fileExistsAtPath:filePath])
        [[NSFileManager defaultManager] createFileAtPath:filePath   contents: nil attributes: nil];

    NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath];

    [handle writeData:data];

Любая причина, по которой ты неиспользовать Quick Look Framework или UIDocumentInteractionController? Oни'возможность предоставить пользователю больше функциональных возможностей, чем WebView, и немного менее логично.

Вот ссылки на Apple,документация:https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/UsingtheQuickLookFramework.html

https://developer.apple.com/library/ios/documentation/uikit/reference/UIDocumentInteractionController_class/Reference/Reference.html

Если ты'вы хотите сделать PDF из приложенияS файловой системы, не нужно беспокоиться! Просто убедитесь, что файл PDF, который вы сохранили, имеет.pdf» расширение, затем предоставьте его QLPreviewController по полному пути:

self.contentURL = [NSURL fileURLWithPath:fullPath];
Решение Вопроса

Получил ответ на мой вопрос. Нижняя строка сделает волшебство.

 [webview loadData:PdfContent MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
 new2ios26 апр. 2018 г., 10:27
Я неЯ не понимаю, в чем разница между кодом второй строки в вашем вопросе и этим ответом:[pdfWebView loadData:responseData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; [webview loadData:PdfContent MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

если у вас есть файл PDF, связанный с вашим приложением (в этом примере с именем "Document.pdf»):

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];

NSString *path = [[NSBundle mainBundle] pathForResource:@"document" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];

[self.view addSubview:webView];
[webView release];

Вы можете найти больше информации здесь: Технический QA1630: ИспользованиеUIWebView для отображения выбранных типов документов.

 Easwaramoorthy K07 июн. 2013 г., 05:23
У меня другой вопрос, у меня есть данные PDF с сервера.

Сохраните его в файл с суффиксом PDF во временной папке и откройте его оттуда.

 Easwaramoorthy K07 июн. 2013 г., 05:24
Не могли бы вы дать фрагмент кода для сохранения NSData с байтовым массивом для хранения в формате pdf в локальном каталоге.

SWIFT3:

webView.load(data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: URL(string: "You can use URL of any file in your bundle here")!)

Ваш ответ на вопрос