1:首先如果放到本地目录下进行播放满足当前条件:(相对路径)
2:一般情况下直接打包放入appstore,由于包太大了下载和使用的情况,推广等各种问题会受到影响.
以下方案:本地下载然后加载对应的Html文件。
后台必须配置.zip文件,包名和下载的必须一致,前端进行解压,然后寻找对应的目录进行读取.html文件.
下面是对应下载代码:
<NSURLSessionDelegate>代理别忘记
注意:里面下载的地址就是tmp地址
-(void)downLoadHtml{
NSURLSessionConfiguration *cfg = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:cfg delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURL *url = [NSURL URLWithString:@"http://admin-flv.kgc.cn/Storyline/www.zip"];
NSURLSessionDownloadTask *task = [session downloadTaskWithURL:url];
[task resume];
}
-
(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location{
// 创建存储文件路径
NSString *caches = [NSString stringWithFormat:@"%@WebKit",NSTemporaryDirectory()];
// response.suggestedFilename:建议使用的文件名,一般跟服务器端的文件名一致NSString file = [caches stringByAppendingPathComponent:downloadTask.response.suggestedFilename];
NSLog(@"下载完成1111111");
/*将临时文件剪切或者复制到Caches文件夹
AtPath :剪切前的文件路径
toPath :剪切后的文件路径
*/
NSFileManager *mgr = [NSFileManager defaultManager];
[mgr moveItemAtPath:location.path toPath:file error:nil];
NSLog(@">>>>>>>>>>>>>>>>>%@",location.path);
}
/**
每当下载完一部分时就会调用(可能会被调用多次)
参数:
bytesWritten 这次调用下载了多少
totalBytesWritten 累计写了多少长度到沙盒中了
totalBytesExpectedToWrite 文件总大小
*/
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didWriteData:(int64_t)bytesWritten
totalBytesWritten:(int64_t)totalBytesWritten
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{
// 这里可以做些显示进度等操作
NSLog(@">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>%lld",bytesWritten);
self.progressView.progress = 1.0 * totalBytesWritten/totalBytesExpectedToWrite;
self.labelProgress.text = [NSString stringWithFormat:@"%lf",self.progressView.progress];
}
/**
恢复下载时使用
*/
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didResumeAtOffset:(int64_t)fileOffset
expectedTotalBytes:(int64_t)expectedTotalBytes
{
// 用于断点续传
}
下载完成后需要对于文件进行解压:对应的tmp文件路径
NSString *caches = [NSString stringWithFormat:@"%@WebKit/",NSTemporaryDirectory()];
NSString *file = [caches stringByAppendingPathComponent:@"www.zip"];
bundlePath];
BOOL is = [SSZipArchive unzipFileAtPath:file toDestination:caches];
if (is == YES) {
NSLog(@"解压成功");
}else{
NSLog(@"解压失败");
}
SSZipArchive是开源的第三方库,进行解压,压缩,和加密等情况处理。
下面代码方法是进行代码读取本地的Html文件;
self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0,SCREENWIDTH, SCREENHEIGHT)];
//添加到view中
self.webView.backgroundColor = [UIColor redColor];
[self.view addSubview: self.webView];
//沙盒路径:
NSLog(@"沙盒路径%@",NSHomeDirectory());
NSLog(@"NSHomeDirectory = %@",NSTemporaryDirectory());
NSString *sttr = [NSString stringWithFormat:@"%@WebKit/www/story.html",NSTemporaryDirectory()];
NSURL *feedbackURL = [NSURL fileURLWithPath:sttr];
[self.webView loadRequest:[NSURLRequest requestWithURL:feedbackURL]];
gitHub有文件包进行下载:
https://github.com/sunmin001/sunmin.git
网友评论