UIWebview加载各种本地文件(通过loadData方法和通过loadRequest方法)

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

原文地址:https://www.cnblogs.com/Rong-Shengcom/p/6102671.html