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:一般用于添加控件, ...
随机推荐
- Java中面向对象的理解
按照惯例,先做一个简单的介绍,现在开始学习 Thinging in Java 4 ,一边看,一边记录,我都不想给自己设定时间安排了,毕竟很少实现过.所以就这样吧!不定期的更新,我都会放到博客中的. 所 ...
- HTML基础-DAY2
表单标签form 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.sel ...
- 你见过这些JavaScript的陷阱吗?
一.成员操作符 Number.prototype.testFn=function () { console.log(this<0, this.valueOf()); } var num = -1 ...
- 神经网络与BP神经网络
一.神经元 神经元模型是一个包含输入,输出与计算功能的模型.(多个输入对应一个输出) 一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好. 事实上,在神经网络 ...
- [BZOJ4592][SHOI2015]脑洞治疗仪(线段树)
线段树基础操作题,唯一需要思考下的是将区间的前k个0覆盖为1. 线段树上二分,先递归到左子树覆盖,回溯时返回还剩多少个0未被覆盖,在根据这个信息递归到右子树.注意特判k=0的情况. 要维护的信息有:区 ...
- [POI2015]Wilcze doły
[POI2015]Wilcze doły 题目大意: 给定一个长度为\(n(n\le2\times10^6)\)的数列\(A(1\le A_i\le10^9)\),可以从中选取不超过\(d\)个连续数 ...
- java集合之二(collection架构)
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308513.html 首先,我们对Collection进行说明.下面先看看Collection的一些框架 ...
- Codeforces Round #293 (Div. 2) C. Anya and Smartphone 数学题
C. Anya and Smartphone time limit per test 1 second memory limit per test 256 megabytes input standa ...
- SQLite3知识(1)--教程
1.SQLite3教程 [1].SQLite 教程 2.选择数据库: [2]. SQLite Select 语句 3.更新数据库: [3]. SQLite Update 语句 4.插入数据库: [4] ...
- LINUX下的21个特殊符号 转
1. > 重定向输出符号. 2. >>重定向输出符号,但有追加的功能. 3. 2>错误重定向输出符号,覆盖原文件内容. 4. 2>>错误重定向输出符号, ...