0

我有一个可以下载 PDF 的 URL,但我不能使用以下内容:

[myWebView loadRequest:urlRequest];

因为这个链接会发出一些挑战......

但是,我设法获取了 PDF 原始数据NSURLConnection(确切地说,我可以在委托方法中获取数据:

(void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data).

然后我想知道,我怎样才能显示这个 PDF?有人知道吗?非常感谢!

4

1 回答 1

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 的路径。

于 2012-11-06T16:42:52.667 回答