UIWebView是IOS內置的瀏覽器,可以瀏覽網頁,打開文檔 html/htm pdf docx txt等格式的文件。 safari瀏覽器就是通過UIWebView做的。 伺服器將MIME的標識符等放入傳送的數據中告訴瀏覽器使用那種插件讀取相關文件。 uiwebview載入各種本地文件(通過loa ...
UIWebView是IOS內置的瀏覽器,可以瀏覽網頁,打開文檔 html/htm pdf docx txt等格式的文件。 safari瀏覽器就是通過UIWebView做的。
伺服器將MIME的標識符等放入傳送的數據中告訴瀏覽器使用那種插件讀取相關文件。
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]);
NSData *data = [NSData dataWithContentsOfFile:path];
[self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];}
#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]);
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];
}
#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相同)