博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发-UIWebView加载本地和网络数据
阅读量:5772 次
发布时间:2019-06-18

本文共 2270 字,大约阅读时间需要 7 分钟。

UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。

基础布局

页面布局很简单就是一个文本框,一个按钮,一个UIWebView,页面布局如下:

如果想简单一点的话,其实用UIWebView也行,不过需要先准备一些文本数据,具体如下:

数据加载

①直接拼接Html,用UIWebView显示,viewDidLoad中添加代码:

//直接加载Html字符串    NSString *htmlStr=@"Html加载HtmlDemo-FlyElephant";    [self.webView loadHTMLString:htmlStr baseURL:nil];

 

 

②加载本地的Html网页,Book.html中代码:

书籍少年维特之烦恼-歌德

viewDidLoad代码:

NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Book" ofType:@"html"];    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];    [self.webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:filePath]];

③加载本地的pdf文件,viewDidLoad代码:

NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.pdf" withExtension:nil];        NSURLRequest *request = [NSURLRequest requestWithURL:url];        [self.webView loadRequest:request];

  

加载pdf的第二种方式:

NSString *path = [[NSBundle mainBundle]pathForResource:@"Book.pdf" ofType:nil];        //以二进制的形式加载数据    NSData *data = [NSData dataWithContentsOfFile:path];        [self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];

④加载本地txt文件,viewDidLoad代码如下:

//加载txt        NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.txt" withExtension:nil];        //设置Url        [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

  

⑤加载Word,viewDidLoad代码如下:

//加载Word    NSURL *url = [[NSBundle mainBundle]URLForResource:@"Book.docx" withExtension:nil];    //设置加载Url    [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

  

⑥加载网络数据,跳转按钮事件中实现如下:

NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlText.text]];    [self.webView loadRequest:request];

  

⑦设置委托,在不同的阶段处理数据,实现UIWebViewDelegate,设置自己本身为委托对象;

[self.webView setDelegate:self];

常用的三个方法:

//加载开始- (void)webViewDidStartLoad:(UIWebView *)webView{    NSLog(@"加载开始的时候的方法调用");}//加载完成-(void)webViewDidFinishLoad:(UIWebView *)webView{    NSLog(@"加载完成的时候电脑方法调用");}//加载出错- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{    NSLog(@"加载出错的时候的调用");}

  

转载于:https://www.cnblogs.com/xiaofeixiang/p/4307573.html

你可能感兴趣的文章
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
java入门第二季--封装--什么是java中的封装
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
NodeJS 工程师必备的 8 个工具
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>
使用GitHub的十个最佳实践
查看>>