UIWebView这是IOS内置的浏览器。能够浏览网页,打开文档  html/htm  pdf   docx  txt等待格文档类型。

safari浏览器是通过UIWebView制作。

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

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

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

uiwebview载入各种本地文件(通过loadRequest方法):

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

UIWebView载入内容的三种方式:

1 载入本地数据文件

指定文件的MIMEType

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

2载入html字符串(能够载入所有或者部分html文件)

3载入NSURLRequest文件(前两步与NSURLConnect同样)

版权声明:本文博客原创文章。博客,未经同意,不得转载。

ios学习网络------4 UIWebView以三种方式中的本地数据的更多相关文章

  1. IOS 多线程,线程同步的三种方式

    本文主要是讲述 IOS 多线程,线程同步的三种方式,更多IOS技术知识,请登陆疯狂软件教育官网. 一般情况下我们使用线程,在多个线程共同访问同一块资源.为保护线程资源的安全和线程访问的正确性. 在IO ...

  2. iOS开发 跳转场景的三种方式

    iOS开发 跳转场景的三种方式 2012年10月17日, 15:32 假设A跳转到B,三种方法:1.按住ctrl键,拖动A上的控件(比如说UIButton)到B上,弹出菜单,选择Modal.不需要写任 ...

  3. java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService

    前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的. Call ...

  4. java 学习笔记 读取配置文件的三种方式

    package com.itheima.servlet.cfg; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...

  5. Spring学习之实例化bean的三种方式

    实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...

  6. Java学习笔记——显示当前日期的三种方式

    一.Date类:这是一种过时的表达方式 import java.util.Date; Date date = new Date(); System.out.println((1900+date.get ...

  7. iOS:切换视图的第三种方式:UITabBarController标签栏控制器

    UITabBarController:标签栏控制器 •通过设置viewControllers属性或者addChildViewController方法可以添加子控制器 –NSArray *viewCon ...

  8. iOS字体加载三种方式

    静态加载 动态加载 动态下载苹果提供的多种字体 其他 打印出当前所有可用的字体 检查某字体是否已经下载 这是一篇很简短的文章,介绍了 iOS 自定义字体加载的三种方式. 静态加载 这个可以说是最简单最 ...

  9. SpringBoot学习笔记(6)----SpringBoot中使用Servlet,Filter,Listener的三种方式

    在一般的运用开发中Controller已经大部分都能够实现了,但是也不排除需要自己实现Servlet,Filter,Listener的方式,SpringBoot提供了三种实现方式. 1. 使用Bean ...

随机推荐

  1. 【原创】最近写的一个比较hack的小爬虫

    目标:爬取爱漫画上面自己喜欢的一个漫画 分析阶段: 0.打开爱漫画主页,迎面就是一坨js代码..直接晕了 1.经过抓包和对html源码的分析,可以发现爱漫画通过另外一个域名发送图片,而当前域名中通过j ...

  2. NYOJ202 红黑树 【预购】

    红黑树 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 什么是红黑树呢?顾名思义,跟枣树类似.红黑树是一种叶子是黑色果子是红色的树. .. 当然,这个是我说的. .. ...

  3. 依法使用Linux,反对Linux国产化

    10月28日.中国操作系统应用推广大会在京举行,包含中央办公厅.公安部.工信部在内的多个中央国家机关部委出席该会.此次推广大会的召开或标志着操作系统国产化进程的进一步推进. 会上.中国project院 ...

  4. NETSH WINSOCK RESET这个命令的意义和效果?

    简要地netsh winsock reset命令含义复位 Winsock 文件夹.一机多用的假设Winsock协议配置问题,那么问题会导致网络连接,我们需要使用netsh winsock reset命 ...

  5. 【HDU】5256 系列转换(上涨时间最长的序列修饰)

    假设a[i]和a[j]我想的一样,满足条件的需要是 a[j] - a[i] > j - i 也就是说,a[i] - i < a[j] - j 例1 4 2 不满意,所以1和2必须有必要之间 ...

  6. Sqlserver中Over函数

    Over函数不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用.  其参数:over(partition by columnname1 order ...

  7. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  8. 三——第二部分——第二篇论文 计划建设SQL Server镜像

    本文接着前面的章节:SQL Server镜像简单介绍 本文出处:http://blog.csdn.net/dba_huangzj/article/details/27203053 俗话说:工欲善其事必 ...

  9. 同一个PC只能运行一个应用实例(考虑多个用户会话情况)

    原文:同一个PC只能运行一个应用实例(考虑多个用户会话情况) class Program { private static Mutex m; [STAThread] static void Main( ...

  10. Windows 7 USB DVD Download Tool 制作的U盘无法启动安装Windows7 SP1

    以前用此工具安装Windows7一直正常,未遇到不能启动安装的问题.Windows7 SP1出来后,用此工具制作安装多台机器均不能引导安装(品牌机和兼容机均是如此 ),要么停留在光标闪烁的状态,要么就 ...