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,如需转载请自行联系原作者

相关文章
|
7天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
25天前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
27天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
83 3
|
30天前
|
存储 安全 网络安全
网络安全与信息安全:保护数据的关键
网络安全与信息安全一直是当今社会中备受关注的话题。本文将从网络安全漏洞、加密技术和安全意识等方面展开讨论,以分享相关知识并强调其重要性。通过深入探讨这些关键问题,希望能够增强读者对网络安全和信息安全的认识,提高其防范意识和保护能力。
17 0
|
1天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
8 0
|
1天前
|
机器学习/深度学习 数据可视化 测试技术
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
|
2天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
13 0
|
2天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
22 0
|
2天前
|
存储 算法 前端开发
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
25 0
|
2天前
|
机器学习/深度学习 数据可视化 网络架构
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类