ios网络学习-- UIWebView的加载本地数据的三种方式
2016-05-09 09:49
806 查看
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件。 safari浏览器就是通过UIWebView做的。
服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件。
uiwebview加载各种本地文件(通过loadData方法):
[objc] view
plain copy
- (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方法):
[objc] view
plain copy
- (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相同)
服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件。
uiwebview加载各种本地文件(通过loadData方法):
[objc] view
plain copy
- (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方法):
[objc] view
plain copy
- (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相同)
相关文章推荐
- linux-tcpdump抓包-邮件加密配置-nmap扫描-tcpwrap的使用
- 当约架成为一门生意 游戏还可以这样创新
- 如何防止运营商网络劫持,避免被他人强行插入广告?
- TCP/IP详解学习笔记(2)-数据链路层
- TCP实现多个客户端与服务端 数据 传输
- TCP/IP详解学习笔记(1)-基本概念
- Nodejs获取网络数据并生成Excel表格
- Retrofit+OKHttp 教你怎么持久化管理Cookie
- WPA-PSK无线网络破解原理及过程(转)
- chrome浏览器自带的开发者工具查看http头
- Linux下编译安装httpd-2.2.31
- HTTP必知必会——断点续传原理
- python 网络编程
- TCP/IP及内核参数优化调优
- AsyncHttpClient 请求https
- HTTP 499 状态码 nginx下 499错误
- python处理http请求中的protobuf
- 邯郸市伯函网络科技有限公司
- iOS 打印网络请求 保存plist
- iOS中的AFNetworking (网络)