UIWebview加载各种本地文件(通过loadData方法和通过loadRequest方法)
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相同)
感谢您的访问!
若对您有帮助或有兴趣请关注博客:http://www.cnblogs.com/Rong-Shengcom/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?