一:URL的讀取,保存,本地讀取保存
1:后臺返回的html的話,去加載這些數(shù)據(jù),進行展示:
NSURL *url = [NSURL URLWithString:@"URL"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
//[_webView loadHTMLString:_modelArticle.url baseURL:url];
[_webView loadRequest:request];
[self addTitleViewWithTitle:_modelArticle.title];
如果加載的url存在,但是后臺需要插入js,去掉廣告之類的
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//_modelJs.content 是js代碼
[_webView stringByEvaluatingJavaScriptFromString:_modelJs.content];
}
2:下面是保存PDF到本地:
//判斷pdf是否存在,如果不存在進行保存
-(BOOL)TxtisFileExist:(NSString *)fileName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSString *filePath = [path stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL result = [fileManager fileExistsAtPath:filePath];
NSLog(@"這個文件已經(jīng)存在:%@",result?@"是的":@"不存在");
return result;
}
3:保存數(shù)據(jù)
需要UIWebView的擴展類進行存儲轉(zhuǎn)NSdata
import "UIWebView+ConverToData.h"
@implementation UIWebView (ConverToData)
-
(NSData *)converToPDF{
UIViewPrintFormatter *fmt = [self viewPrintFormatter];
UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];
[render addPrintFormatter:fmt startingAtPageAtIndex:0];
CGRect page;
page.origin.x=0;
page.origin.y=0;
page.size.width=600;
page.size.height=768;CGRect printable=CGRectInset( page, 50, 50 );
[render setValue:[NSValue valueWithCGRect:page] forKey:@"paperRect"];
[render setValue:[NSValue valueWithCGRect:printable] forKey:@"printableRect"];NSMutableData * pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );for (NSInteger i=0; i < [render numberOfPages]; i++)
{
UIGraphicsBeginPDFPage();
CGRect bounds = UIGraphicsGetPDFContextBounds();
[render drawPageAtIndex:i inRect:bounds];}
UIGraphicsEndPDFContext();
return pdfData;
}
//調(diào)用上面的方法
//注意了,別用漢語名稱去保存,可以用唯一標識進行保存
NSData *data = [_webView converToPDF];
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%@.pdf",[self transform:strName]]];
BOOL result = [data writeToFile:path atomically:YES];
if (result) { @"下載成功"}
4:如果保存下來后直接進行讀取本地PDF
如果存在: 調(diào)用下面的代碼 記住你傳過的名字 然后進行UIWeView加載就OK了
- (void)readPDF:(NSString *)str
{
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *imageFilePath = [filePath stringByAppendingPathComponent:str];
NSURL *urlttt = [NSURL fileURLWithPath:imageFilePath];
NSURLRequest *request = [NSURLRequest requestWithURL:urlttt];
[_webView loadRequest:request];
}
二:后臺數(shù)據(jù)是PDF文件如何操作
//這個是下載后臺返回的pdf文件進行下載
//首先是判斷文件的存沒有存在,然后進行數(shù)據(jù)的下載或者讀取
-
(void)download:(NSString *)strurl path:(NSString *)pathName
{
if (![self TxtisFileExist:[NSString stringWithFormat:@"%@.pdf",pathName]]) {
NSString *urlString = strurl;
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentsDirectory = [paths lastObject]; NSString * path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf",[self transform:pathName]]]; return [NSURL fileURLWithPath:path]; } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { if (error == nil) { [self.view showToastMessage:@"下載成功"]; }else{ [self.view showToastMessage:@"下載失敗,請檢查網(wǎng)絡或者PDF文件過大"]; [self addRefreshButton:self.view refreshBlock:^{}]; } }]; [task resume];}else{
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *imageFilePath = [filePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.pdf",[self transform:pathName]]]; NSURL *urlttt = [NSURL fileURLWithPath:imageFilePath]; NSURLRequest *request = [NSURLRequest requestWithURL:urlttt]; [_webView loadRequest:request];}
}