iOS开发-UIWebView加载本地和网络数据
UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。
基础布局
页面布局很简单就是一个文本框,一个按钮,一个UIWebView,页面布局如下:

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

数据加载
①直接拼接Html,用UIWebView显示,viewDidLoad中添加代码:
//直接加载Html字符串
NSString *htmlStr=@"<html><head><title>Html加载</title></head><body>HtmlDemo-FlyElephant</body></html>";
[self.webView loadHTMLString:htmlStr baseURL:nil];

②加载本地的Html网页,Book.html中代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>书籍</title>
</head>
<body>
少年维特之烦恼-歌德
</body>
</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(@"加载出错的时候的调用");
}
iOS开发-UIWebView加载本地和网络数据的更多相关文章
- iOS - 开发中加载本地word/pdf文档说明
最近项目中要加载一个本地的word/pdf等文件比如<用户隐私政策><用户注册说明>,有两种方法加载 > 用QLPreviewController控制器实现 步骤 : & ...
- UIWebView加载本地html文件
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , KScreenWidth, KScreenHeight-)]; ...
- uiwebview 加载本地js、css、img,html从网站加载
资源文件都是放在根目录下 1.index.html <html> <head> <title>My test Page</title> <link ...
- 用UIWebView加载本地图片和gif图
加载gif图: NSData *gif = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@" ...
- World Wind Java开发之八——加载本地缓存文件构建大范围三维场景(
http://blog.csdn.net/giser_whu/article/details/42044599 上一篇博客主要是针对小文件直接导入WW中显示,然而当文件特别大时,这种方式就不太可行.因 ...
- IOS开发之路二十一(UIWebView加载本地html)
挺简单不多说的直接代码: // // ViewController.h // JSAndJson // // Created by WildCat on 13-9-8. // Copyright (c ...
- iOS中 UIWebView加载网络数据 技术分享
直奔核心: #import "TechnologyDetailViewController.h" #define kScreenWidth [UIScreen mainScreen ...
- [IOS 开发] 懒加载 (延迟加载) 的基本方式,好处,代码示例
懒加载的好处: 1> 不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 2> 每个属性的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 ...
- iOS 开发笔记-加载/初始化
ViewDidLoad 一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图.从数据库或者网络加载模型数据装配到子视图中 在自定义控制里 initWithFrame:一般用于添加控件, ...
随机推荐
- 洛谷——P1747 好奇怪的游戏
P1747 好奇怪的游戏 题目背景 <爱与愁的故事第三弹·shopping>娱乐章. 调调口味来道水题. 题目描述 爱与愁大神坐在公交车上无聊,于是玩起了手机.一款奇怪的游戏进入了爱与愁大 ...
- BoneBlack am335x can0 通讯配置与测试
准备工具: 1.内核3.14.65,u-boot.文件系统 2.boneblack开发板 3.串口线.电源线,测试线,测试夹 一.配置内核支持CAN通讯 [*] Networking support ...
- [leetcode DP]63. Unique Paths II
Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...
- Django快速创建博客,包含了整个框架使用过程,简单易懂
创建工程 ...
- CF696B Puzzles 期望
显然可以树形$dp$ 令$f[i]$表示$i$号节点的期望时间戳 不妨设$fa$有$k$个子节点,对于$i$的子节点$u$,它是第$j(1 \leqslant j \leqslant k)$个被访问的 ...
- 请你谈谈cookie的利弊
以下均是自己理解和整理的,如果有错误请指出,谢谢O(∩_∩)O~~ 优点 极高的扩展性和可用性. 1) 数据持久性. 2) 不需要任何服务器资源.Cookie存储在客户端并在发送后由服务器读取. ...
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏 二分图匹配
4554: [Tjoi2016&Heoi2016]游戏 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4554 Descripti ...
- BZOJ 2342: [Shoi2011]双倍回文 马拉车算法/并查集
2342: [Shoi2011]双倍回文 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1123 Solved: 408 题目连接 http://w ...
- hdu 4442 Physical Examination 贪心排序
Physical Examination Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Linux下禅道系统的搭建
说明: 禅道系统的搭建,分两大部分 1.xampp环境的搭建 2.禅道系统的搭建 *********************************************************** ...