Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C在UIWebView中加载PDF文件_Objective C_File_Pdf_Webview_Nsdata - Fatal编程技术网

Objective c 目标C在UIWebView中加载PDF文件

Objective c 目标C在UIWebView中加载PDF文件,objective-c,file,pdf,webview,nsdata,Objective C,File,Pdf,Webview,Nsdata,编辑: 我的Base64解码有问题。我搜索了一个外部Base64解码器,它的工作原理如下: 情况就是这样: 我有一个Base64编码的字节数组,我从一个Web服务获取并将其转换为NSData: NSData *data = [Base64 decodeBase64WithString:response]; 在我的Webview控制器中,我声明: [webview loadData:fileData MIMEType:@"application/pdf" textEncodingName:@"u

编辑: 我的Base64解码有问题。我搜索了一个外部Base64解码器,它的工作原理如下:

情况就是这样: 我有一个Base64编码的字节数组,我从一个Web服务获取并将其转换为NSData:

NSData *data = [Base64 decodeBase64WithString:response];
在我的Webview控制器中,我声明:

[webview loadData:fileData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
fileData是已解码的数据

当我运行这个时,我会看到一个灰色的屏幕。 所以我假设我没有给它一个正确的
NSData
对象

[webView loadata:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];
这应该对您有帮助,如果没有,您可以按照V1ru8的建议将其写入文件,但在大多数情况下,这是额外的一步


希望这会有所帮助

我打字时已经回答了自己的问题

所以我假设我没有给它一个正确的
NSData
对象

[webView loadata:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];
我的Base64解码是错误的

使用这句话很有魅力:

[webview loadData:fileData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

我只是想让其他人看看,因为他们也有同样的问题。

除了已经提供的答案之外,我发现在包含UIViewController的初始化函数中将
NSData*
加载到
UIWebView
中不起作用,也不会出现错误


需要将
NSData*
加载到
viewdiload
功能中的
UIWebView

最简单的方法是:

UIWebView *webview = [[UIWebView alloc] init];
[self.view addSubview:webview];
NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfFileName" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webview loadRequest:request];

UIWebView已弃用,请使用WKWebView

目标C示例:

#import <WebKit/WebKit.h>

您可以尝试将数据写入一个文件
[data writeToFile:@“test.pdf”原子:YES]
,然后在预览时打开该pdf,以检查是否从base64字符串中获取了有效的pdf文件。如我的编辑中所述,我的base64解码错误。使用textEncodingName:@“utf-8”效果很好。您能否解释一下base64解码中的错误,以及您如何修复它以使其变得有用。是否有人可以给我WKWebView的上述代码版本。。。在将UIWebView迁移到WKWebView后,这项工作停止了,这里的旁注:这个问题是在2011年发布的