ios網路學習------4 UIWebView的載入本機資料的三種方式

來源:互聯網
上載者:User

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




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.