下载ZIP包解压并加载HTML文件

2016-12-19  本文已影响0人  Immortalszz

直接从服务器下载zip文件

 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(queue, ^{
        NSURL *url = [NSURL URLWithString:@"http://192.168.10.248:30000/test/html_template"];
        NSError *erro = nil;
        NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&erro];
        
        if (!erro) {
            NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
            NSString *zipPath = [path stringByAppendingPathComponent:@"zipfile.zip"];
            
            [data writeToFile:zipPath options:0 error:&erro];
            
            if (!erro) {
                NSLog(@"save zipfile suc");
                [self archZip:zipPath];
            }else{
                NSLog(@"save zipfile fail");
            }
        }else{
            
            NSLog(@"get zipfile fail");
        }

        
    });

将zip文件下载到document目录下,并将此路径获取到,用作解压路径。

解压zip文件

 NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    BOOL archive = [SSZipArchive unzipFileAtPath:zipPath toDestination:path overwrite:YES password:@"123" error:nil];
    if (archive) {
        NSLog(@"archive success");
        
        [[NSFileManager defaultManager] removeItemAtPath:zipPath error:nil];
        
        NSString *pathZip = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
        
        NSString *desPath = [pathZip stringByAppendingPathComponent:@"xxxx/main/main.html"];
        NSString *path = [NSString stringWithFormat:@"file://%@",desPath];
        NSURL *url = [NSURL URLWithString:path];

        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [self.webView loadRequest:request];
    }else{
        
        NSLog(@"archive fail");
    }

使用ZipArchive解压,解压完成后删除原zip包。
之后注意要拼接一个文件路径,也就是手动加上'file://'这个路径头,否则不识别。

上一篇下一篇

猜你喜欢

热点阅读