我有一个可以下载PDF的网址,但我不能使用以下内容:
[myWebView loadRequest:urlRequest];
因为这个链接会发出一些挑战......
但是,我设法获取PDF原始数据NSURLConnection
(确切地说,我可以在委托方法中获取数据:
(void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data).
然后我想知道,我怎么能显示这个PDF?有没有人有任何想法?非常感谢!
答案 0 :(得分:0)
我已经制作了自己的pdf下载课程,但这是你需要的。在班级的.h。声明:
NSMutableData *_data;
NSString *pdfPath;
还为连接的子代表
<NSURLConnectionDataDelegate, NSURLConnectionDelegate>
然后在实施文件中,- viewDidLoad
:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
pdfPath = [documentsDirectory stringByAppendingPathComponent:@"pdfName.pdf"];
connection:didReceiveData:
方法:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if(!_data) _data = [[NSMutableData data]init];
[_data appendData:data];
progressView.progress = ((float) [_data length] / (float) downloadSize);
}
connectionDidFinishLoading:
方法:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
unsigned char byteBuffer[[_data length]];
[_data getBytes:byteBuffer];
[_data writeToFile:pdfPath atomically:YES];
}
因此,当它接收数据时,它会构建_data,然后在完成时将其写入路径。确保连接委托设置为self
。
之后,您可以像以前一样打开PDF的路径。