iOS开发-UIWebView加载本地和网络数据

简介:

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

基础布局

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

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

数据加载

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

1
2
3
//直接加载Html字符串
NSString  *htmlStr=@ "<html><head><title>Html加载</title></head><body>HtmlDemo-FlyElephant</body></html>" ;
[ self .webView loadHTMLString:htmlStr baseURL: nil ];

 

 

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

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head>
<meta charset= "UTF-8" >
<title>书籍</title>
</head>
<body>
少年维特之烦恼-歌德
</body>
</html>

viewDidLoad代码:

1
2
3
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代码:

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

  

加载pdf的第二种方式:

1
2
3
4
5
6
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代码如下:

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

  

⑤加载Word,viewDidLoad代码如下:

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

  

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

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

  

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

1
[ self .webView setDelegate: self ];

常用的三个方法:

1
2
3
4
5
6
7
8
9
10
11
12
//加载开始
- ( void )webViewDidStartLoad:(UIWebView *)webView{
     NSLog (@ "加载开始的时候的方法调用" );
}
//加载完成
-( void )webViewDidFinishLoad:(UIWebView *)webView{
     NSLog (@ "加载完成的时候电脑方法调用" );
}
//加载出错
- ( void )webView:(UIWebView *)webView didFailLoadWithError:( NSError  *)error{
     NSLog (@ "加载出错的时候的调用" );
}

  本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4307573.html,如需转载请自行联系原作者

相关文章
|
6天前
|
存储 安全 网络安全
云计算与网络安全:守护数据,构筑未来
在当今的信息化时代,云计算已成为推动技术革新的重要力量。然而,随之而来的网络安全问题也日益凸显。本文从云服务、网络安全和信息安全等技术领域展开,探讨了云计算在为生活带来便捷的同时,如何通过技术创新和策略实施来确保网络环境的安全性和数据的保密性。
|
8天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
1天前
|
监控 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第34天】在数字化时代,云计算已成为企业和个人存储、处理数据的优选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境中的网络安全挑战,并提供一系列策略来加强信息安全。从基础的数据加密到复杂的访问控制机制,我们将一探究竟如何在享受云服务便利的同时,确保数据的安全性和隐私性不被侵犯。
18 10
|
5天前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
22 7
|
8天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台解决方案
【9月更文挑战第27天】在移动应用开发的广阔天地中,安卓和iOS两大操作系统如同双子星座般耀眼。开发者们在这两大平台上追逐着创新的梦想,却也面临着选择的难题。如何在保持高效的同时,实现跨平台的开发?本文将带你探索跨平台开发的魅力所在,揭示其背后的技术原理,并通过实际案例展示其应用场景。无论你是安卓的忠实拥趸,还是iOS的狂热粉丝,这篇文章都将为你打开一扇通往跨平台开发新世界的大门。
|
11天前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
12天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第23天】在数字化时代,云计算已成为企业和个人存储和处理数据的热门选择。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,并提出一系列保护数据的策略。我们将从云服务的基本概念出发,深入分析网络安全的重要性,并介绍如何通过技术和管理措施来增强云安全。文章的目的是为读者提供实用的指导,帮助他们在享受云计算便利的同时,确保数据的安全。
|
8天前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
9天前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
下一篇
无影云桌面