ios网络学习------4 UIWebView的加载本地数据的三种方式
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相同)
ios网络学习------4 UIWebView的加载本地数据的三种方式的更多相关文章
- iOS --- UIWebView的加载本地数据的三种方式
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件. safari浏览器就是通过UIWebView做的. 服务器将MIM ...
- Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式
Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到目前为止,大家已经掌握了如何使用过滤器来减少服务器端通过 ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...
- Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式: a. 加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...
- Swift - 网页控件(UIWebView)加载本地数据,文件
使用UIWebView加载本地数据或资源有如下三种方式: 1,使用loadHTMLString方法加载HTML内容 2,使用loadRequest方法加载本地资源(也可用于加载服务器资源) 3,先将内 ...
- 加载gif动画的三种方式
GifView.h/** * 调用结束就开始播放动画,如果需要用户指定何时播放的话,只需要把timer的开始放到合适的位置.通过对CFDictonaryRaf 也就是gifProperties的改变, ...
- ExtJS4加载FormPanel数据的几种方式
我们做web应用最多的就是处理表单,extjs为我们提供了很多处理表单的功能,很多初学者疑惑怎么加载表单数据,到底能用什么方式加载?本文中,我将我自己实验过的进行一下总结,自己备忘,也希望能帮助到其他 ...
- UIImage加载本地图片的两种方式
UIImage加载图片方式一般有两种: (1)imagedNamed初始化:默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片 ...
- Unity加载本地图片的2种方式
1. 使用 WWW 加载,详细查看 unity3d 官方文档. 2. 使用 System.IO 加载,lua 代码如下: local File = luanet.import_type("S ...
随机推荐
- python:页面布局 后台管理页面之常用布局
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- iOS OAuth2.0认证和SSO授权
OAuth2.0和SSO授权 一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...
- 让IE7 IE8支持CSS3 background-size属性
简介 CSS3 新增的 background-size 是一个很有用的属性,用于定义背景图片的尺寸,有了这个属性,你就可以任意指定背景图片的大小.其中最常用的值应该要数 cover 了,该值能让背景图 ...
- 《BI那点儿事》数据流转换——模糊分组转换
在模糊查找中我们提到脏数据是怎样进入到表中的事情,主要还是由于一些“Lazy-add”造成的.这种情况我们的肉眼很容易被欺骗,看上去是同一个单词,其实就差那么一个字母,变成了两个不同的单词.一个简单的 ...
- iOS - Library 库
1.动态库 & 静态库 什么是库: 库是程序代码的集合,是共享程序代码的一种方式.根据源代码的公开情况,库可以分为 2 种类型: 开源库: 公开源代码,能看到具体实现. 比如 SDWebIma ...
- c#入门笔记(2)控件
1.控件是可以从工具栏直接拖动到窗体,具有确定功能的函数.大部分控件属于control类的派生类.通用属性name(名称),location(具体的位置),top,left(位置) 2.form窗体类 ...
- keyup与setInterval
<html><body> <input type="text" id="clock" size="35" /& ...
- Android Studio - HPROF文件查看和分析工具
Android Studio 翻译的官方文章 原文链接 当你在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用情况时,可以把Java堆快 ...
- STL中的查找算法
STL中有很多算法,这些算法可以用到一个或多个STL容器(因为STL的一个设计思想是将算法和容器进行分离),也可以用到非容器序列比如数组中.众多算法中,查找算法是应用最为普遍的一类. 单个元素查找 1 ...
- Openvpn 本地密码验证
1.修改配置文件.(添加下列配置) auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env #开启用户密码脚本 client-cert-not-r ...