iOS --- UIWebView的加載本地數據的三種方式

UIWebView是IOS內置的瀏覽器,能夠瀏覽網頁,打開文檔  html/htm  pdf   docx  txt等格式的文件。  safari瀏覽器就是經過UIWebView作的。html

服務器將MIME的標識符等放入傳送的數據中告訴瀏覽器使用那種插件讀取相關文件。web

 

uiwebview加載各類本地文件(經過loadData方法):瀏覽器

 

- (void)viewDidLoad
{
[super viewDidLoad];
[self setupUI];

NSString *path = [[NSBundle mainBundle] pathForResource:@"關於.docx" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", [self mimeType:url]);


//webview加載本地文件,可使用加載數據的方式
//第一個誒參數是一個NSData, 本地文件對應的數據
//第二個參數是MIMEType
//第三個參數是編碼格式
//相對地址,通常加載本地文件不使用,能夠在指定的baseURL中查找相關文件。

//以二進制數據的形式加載沙箱中的文件,
NSData *data = [NSData dataWithContentsOfFile:path];

[self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];
}服務器

#pragma mark 加載docx文件
- (void)loadDOCX
{

NSString *path = [[NSBundle mainBundle] pathForResource:@"關於.docx" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", [self mimeType:url]);app

NSData *data = [NSData dataWithContentsOfFile:path];

[self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];}ui

#pragma mark 加載pdf文件
- (void)loadPDF
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"iOS6Cookbook.pdf" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", [self mimeType:url]);

NSData *data = [NSData dataWithContentsOfFile:path];

[self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];
}編碼

#pragma mark 加載本地文本文件
- (void)loadText
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"關於.txt" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", [self mimeType:url]);url

NSData *data = [NSData dataWithContentsOfFile:path];

[self.webView loadData:data MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil];
}插件


#pragma mark 加載本地html文件
- (void)loadHTML
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"demo.html" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", [self mimeType:url]);

NSData *data = [NSData dataWithContentsOfFile:path];

[self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:nil];
}orm


#pragma mark 獲取指定URL的MIMEType類型
- (NSString *)mimeType:(NSURL *)url
{
//1NSURLRequest
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//2NSURLConnection

//3 在NSURLResponse裏,服務器告訴瀏覽器用什麼方式打開文件。

//使用同步方法後去MIMEType
NSURLResponse *response = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
return response.MIMEType;
}

 

- (void)viewDidLoad
{
[super viewDidLoad];
[self setupUI];


//加載路徑的第一個方式
// NSString *path = [[NSBundle mainBundle] pathForResource:@"關於.docx" ofType:nil];
// NSURL *url = [NSURL fileURLWithPath:path];
//加載路徑的第二個方式
NSURL *url = [[NSBundle mainBundle] URLForResource:@"iOS6Cookbook.pdf" withExtension:nil];

//uiwebview加載文件的第二個方式。第一個方式在下面的註釋中。
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];

//NSLog(@"%@", [self mimeType:url]);
//webview加載本地文件,可使用加載數據的方式
//第一個誒參數是一個NSData, 本地文件對應的數據
//第二個參數是MIMEType
//第三個參數是編碼格式
//相對地址,通常加載本地文件不使用,能夠在指定的baseURL中查找相關文件。

//以二進制數據的形式加載沙箱中的文件,
// NSData *data = [NSData dataWithContentsOfFile:path];
//
// [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];
}

UIWebView加載內容的三種方式:

1 加載本地數據文件

       指定文件的MIMEType

編碼格式使用@「UTF-8」      

2加載html字符串(能夠加載所有或者部分html文件)

 

3加載NSURLRequest文件(前兩步與NSURLConnect相同)

相關文章
相關標籤/搜索