你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios網絡學習------4 UIWebView的加載本地數據的三種方式

ios網絡學習------4 UIWebView的加載本地數據的三種方式

編輯:IOS開發綜合

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;
}


uiwebview加載各種本地文件(通過loadRequest方法):

- (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相同)




  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved