Если у вас есть контроль над таким UIWebView и URL, который он открывает, то да, вы можете. Смотрите следующий код в качестве примера. Он использует библиотеку ASIHttpRequest, которую вы можете найти по адресу http://allseeing -i.com / ASIHTTPRequest /
#import "WebViewPDFViewController.h"
#import <CommonCrypto/CommonDigest.h>
#import "ASIHTTPRequest.h"
@implementation WebViewPDFViewController
-(NSString *) md5:(NSString *) str {
const char *cStr = [str UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result );
return [NSString stringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
-(void) viewWillAppear:(BOOL)animated {
NSString *pdfOnlinePath = @"http://redinter.eu/web/files/revistas/2Dummy.pdf";
// Check if the file is already stored locally. If it is not, then first
// download it, and load from the local cache. Next requests will always
// load from the local cache
NSString *pdfHash = [self md5:pdfOnlinePath];
NSString *pdfCachePath = [NSString stringWithFormat:@"%@/pdfcache_%@.pdf",
[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0],
pdfHash];
if ([[NSFileManager defaultManager] fileExistsAtPath:pdfCachePath]) {
NSLog(@"Cached file found, using it");
}
else {
// Not found in the local cache, download and store it
NSLog(@"File not found in the local cache, going to download it");
ASIHTTPRequest *downloadRequest = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:pdfOnlinePath]];
[downloadRequest setDownloadDestinationPath:pdfCachePath];
[downloadRequest startSynchronous];
}
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:pdfCachePath]];
UIWebView *webView = [[[UIWebView alloc] initWithFrame:self.view.bounds] autorelease];
[webView loadRequest:request];
[self.view addSubview:webView];
}
- (void)dealloc {
[super dealloc];
}
@end
Я проверил это здесь, и он отлично работает.