如果是WebView,要签代理
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *pageUrl = request.URL.absoluteString;
NSString *lastName =[[pageUrl lastPathComponent] lowercaseString];
if ([lastName containsString:@".pdf"])
{
NSData *data = [NSData dataWithContentsOfURL:request.URL];
[self.webview loadData:data MIMEType:@"application/pdf" textEncodingName:@"GBK" baseURL:nil];
}
return YES;
}
如果是WKWebView,要签代理
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
NSString *_webUrlStr = navigationAction.request.URL.absoluteString;
NSString *lastName =[[_webUrlStr lastPathComponent] lowercaseString];
if ([lastName containsString:@".pdf"])
{
NSData *data = [NSData dataWithContentsOfURL:navigationAction.request.URL];
[self.webView loadData:data MIMEType:@"application/pdf" characterEncodingName:@"GBK" baseURL:nil];
}
decisionHandler(WKNavigationActionPolicyAllow);
}
iOS AFNetWorking 下载pdf文档
+ (void)downLoadPdf:(NSString *)url pdf_id:(NSString *)pdf_id block:(APIFilePath)pdfFilePath {
NSMutableDictionary *mPdf_dic = [NSMutableDictionary dictionaryWithDictionary:[Tool getLocalKey:PDFLOCAL_DIC]];
NSURL *URL = [NSURL URLWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
NSLog(@"###%@", targetPath); //原始文件
NSLog(@"**%@", [response suggestedFilename]); //文件名
return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
NSLog(@"File downloaded to: %@", filePath);//下载成功后本地保存id以及文件路径
NSString *stringUrl = [filePath absoluteString];
mPdf_dic[pdf_id] = stringUrl;
NSDictionary *pdfDic = [NSDictionary dictionaryWithDictionary:mPdf_dic];
[Tool saveLocalvalue:pdfDic key:PDFLOCAL_DIC];
pdfFilePath(stringUrl);
}];
[downloadTask resume];
}
查看文档时判断本地是否已经下载
#pragma mark - read
- (void)read {
//本地已下载pdf文件
NSDictionary *pdfDic = [Tool getLocalKey:PDFLOCAL_DIC];
if (pdfDic == nil) {
[Tool saveLocalvalue:pdfDic key:PDFLOCAL_DIC];
}
//文件路径
NSString *filePathLocal;
NSString *fileUrl = @"pdf的URL";
NSString *fileKey = @"1471509244417_1471509259460";
NSArray *keys = [pdfDic allKeys];
BOOL isDownload = NO; //是否已经下载
for (NSString *key in keys) {
if ([key isEqualToString:fileKey]) {
isDownload = YES;
break;
} else {
isDownload = NO;
}
}
if (isDownload) {
filePathLocal = pdfDic[fileKey];
[self openPdf:filePathLocal];
} else {
[WYAPI downLoadPdf:fileUrl pdf_id:fileKey block:^(NSString *filePath) {
[self openPdf:filePath];
}];
}
}
————————————————
版权声明:本文为CSDN博主「萤火虫儿飞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41886208/article/details/87891758