zoukankan      html  css  js  c++  java
  • 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];
             }];
        }
    }
  • 相关阅读:
    招财铃计划 与 实现,
    present, visible,覆盖,系统行为,
    windows,navigationcontroller,stausbar, 20,充满,
    CSS伪类选择器:is、not
    CSS实现常用组件特效(不依赖JS)
    Iconfont技术
    Axios的基本使用
    axios和ajax,fetch的区别
    axios全攻略
    vue-loader作用
  • 原文地址:https://www.cnblogs.com/tian-sun/p/5909880.html
Copyright © 2011-2022 走看看