zoukankan      html  css  js  c++  java
  • UIWebView加载各种类型的数据

    UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件。  safari浏览器就是通过UIWebView做的。

    服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件。

    uiwebview加载各种本地文件(通过loadData方法):

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. - (void)viewDidLoad  
    2. {  
    3.     [super viewDidLoad];  
    4.     [self setupUI];  
    5.       
    6.     NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil];  
    7.     NSURL *url = [NSURL fileURLWithPath:path];  
    8.     NSLog(@"%@", [self mimeType:url]);  
    9.       
    10.       
    11.     //webview加载本地文件,可以使用加载数据的方式  
    12.     //第一个诶参数是一个NSData, 本地文件对应的数据  
    13.     //第二个参数是MIMEType  
    14.     //第三个参数是编码格式  
    15.     //相对地址,一般加载本地文件不使用,可以在指定的baseURL中查找相关文件。  
    16.       
    17.     //以二进制数据的形式加载沙箱中的文件,  
    18.     NSData *data = [NSData dataWithContentsOfFile:path];  
    19.       
    20.     [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];  
    21. }  
    22.   
    23. #pragma mark 加载docx文件  
    24. - (void)loadDOCX  
    25. {  
    26.       
    27.     NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil];  
    28.     NSURL *url = [NSURL fileURLWithPath:path];  
    29.     NSLog(@"%@", [self mimeType:url]);  
    30.   
    31.     NSData *data = [NSData dataWithContentsOfFile:path];  
    32.       
    33.     [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];}  
    34.   
    35. #pragma mark 加载pdf文件  
    36. - (void)loadPDF  
    37. {  
    38.     NSString *path = [[NSBundle mainBundle] pathForResource:@"iOS6Cookbook.pdf" ofType:nil];  
    39.     NSURL *url = [NSURL fileURLWithPath:path];  
    40.     NSLog(@"%@", [self mimeType:url]);  
    41.       
    42.     NSData *data = [NSData dataWithContentsOfFile:path];  
    43.       
    44.     [self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];  
    45. }  
    46.   
    47. #pragma mark 加载本地文本文件  
    48. - (void)loadText  
    49. {  
    50.     NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.txt" ofType:nil];  
    51.     NSURL *url = [NSURL fileURLWithPath:path];  
    52.     NSLog(@"%@", [self mimeType:url]);  
    53.   
    54.     NSData *data = [NSData dataWithContentsOfFile:path];  
    55.       
    56.     [self.webView loadData:data MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil];  
    57. }  
    58.   
    59.   
    60. #pragma mark 加载本地html文件  
    61. - (void)loadHTML  
    62. {  
    63.     NSString *path = [[NSBundle mainBundle] pathForResource:@"demo.html" ofType:nil];  
    64.     NSURL *url = [NSURL fileURLWithPath:path];  
    65.     NSLog(@"%@", [self mimeType:url]);  
    66.       
    67.     NSData *data = [NSData dataWithContentsOfFile:path];  
    68.       
    69.     [self.webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:nil];  
    70. }  
    71.   
    72.   
    73. #pragma mark 获取指定URL的MIMEType类型  
    74. - (NSString *)mimeType:(NSURL *)url  
    75. {  
    76.     //1NSURLRequest  
    77.     NSURLRequest *request = [NSURLRequest requestWithURL:url];  
    78.     //2NSURLConnection  
    79.       
    80.     //3 在NSURLResponse里,服务器告诉浏览器用什么方式打开文件。  
    81.       
    82.     //使用同步方法后去MIMEType  
    83.     NSURLResponse *response = nil;  
    84.     [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];  
    85.     return response.MIMEType;  
    86. }  


    uiwebview加载各种本地文件(通过loadRequest方法):
    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. - (void)viewDidLoad  
    2. {  
    3.     [super viewDidLoad];  
    4.     [self setupUI];  
    5.       
    6.       
    7.     //加载路径的第一个方式  
    8. //    NSString *path = [[NSBundle mainBundle] pathForResource:@"关于.docx" ofType:nil];  
    9. //    NSURL *url = [NSURL fileURLWithPath:path];  
    10.     //加载路径的第二个方式  
    11.     NSURL *url = [[NSBundle mainBundle] URLForResource:@"iOS6Cookbook.pdf" withExtension:nil];  
    12.       
    13.     //uiwebview加载文件的第二个方式。第一个方式在下面的注释中。  
    14.     NSURLRequest *request = [NSURLRequest requestWithURL:url];  
    15.     [self.webView loadRequest:request];  
    16.       
    17.     //NSLog(@"%@", [self mimeType:url]);  
    18.     //webview加载本地文件,可以使用加载数据的方式  
    19.     //第一个诶参数是一个NSData, 本地文件对应的数据  
    20.     //第二个参数是MIMEType  
    21.     //第三个参数是编码格式  
    22.     //相对地址,一般加载本地文件不使用,可以在指定的baseURL中查找相关文件。  
    23.       
    24.     //以二进制数据的形式加载沙箱中的文件,  
    25. //    NSData *data = [NSData dataWithContentsOfFile:path];  
    26. //      
    27. //    [self.webView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];  
    28. }  


    UIWebView加载内容的三种方式:

    1 加载本地数据文件

           指定文件的MIMEType

    编码格式使用@“UTF-8”      

    2加载html字符串(可以加载全部或者部分html文件)

     3加载NSURLRequest文件(前两步与NSURLConnect相同)

    转自:http://blog.csdn.net/huang2009303513/article/details/35210425

  • 相关阅读:
    SDN第四次上机作业
    SDN第四次作业
    SDN第三次上机作业
    SDN第三次作业
    SDN第二次上机作业
    SDN第二次作业
    个人作业——软件产品案例分析(待更)
    软工 实验三 需求分析(沈樟伟组)
    个人博客二:需求分析
    微软小娜APP的案例分析
  • 原文地址:https://www.cnblogs.com/sugeladi/p/5402677.html
Copyright © 2011-2022 走看看