IOS中WebView的使用
UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等,UIWebView能够加载html/htm、pdf、docx、txt等格式的文件
系统自带的Safari浏览器就是通过UIWebView实现的。下面我的一起来开开如何简单使用webView。
1、搭建UI界面
2MIME的英文全称是“Multipurpose Internet Mail Extensions”
多用途互联网邮件扩展,是一个互联网标准,最早应用于电子邮件系统,后来应用到浏览器,在这里我们需要得到文件的MIMIE类型,如何获取呢?咱们通过下面方式获取
- - (NSString *) getMimeType:(NSString * ) path{
- //本地文件路径
- NSURL * url=[NSURL fileURLWithPath:path];
- //创建请求
- NSURLRequest * request=[NSURLRequest requestWithURL:url];
- NSURLResponse * response;
- //发送同步请求获取响应类型
- [NSURLConnection sendSynchronousRequest:request returningResponse:(&response) error:nil];
- return response.MIMEType;
- }
3 加载pdf文件
- //监测所有数据类型:设定电话号码、网址、电子邮件和日期等文字变为链接文字
- [webView setDataDetectorTypes:UIDataDetectorTypeAll];
- //设置需要展示的文件路径,并且取得mimeType类型
- NSString * str=[[NSBundle mainBundle] pathForResource:@"iOS6Cookbook.pdf" ofType:nil];
- NSString * mimeType=[self getMimeType:str];
- //调用方法加载数据
- NSData * data=[NSData dataWithContentsOfFile:str];
- [self.webView loadData:data MIMEType:mimeType textEncodingName:@"UTF-8" baseURL:nil];
效果图:
4、加载txt和上面类似本文不做讲解
5、加载HTML,现在有html文件一个
加载页面,获取字符串然后显示即可:
- //监测所有数据类型:设定电话号码、网址、电子邮件和日期等文字变为链接文字
- [webView setDataDetectorTypes:UIDataDetectorTypeAll];
- //设置需要展示的文件路径,并且取得mimeType类型
- NSString * str=[[NSBundle mainBundle] pathForResource:@"book_v2.html" ofType:nil];
- NSString * mimeType=[self getMimeType:str];
- //调用方法加载数据
- NSData * data=[NSData dataWithContentsOfFile:str];
- NSString * htmlStr=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- [self.webView loadHTMLString:htmlStr baseURL:nil];
效果图:
6、加载URL请求
- //监测所有数据类型:设定电话号码、网址、电子邮件和日期等文字变为链接文字
- [webView setDataDetectorTypes:UIDataDetectorTypeAll];
- NSURL * url=[NSURL URLWithString:@"http://21-sun.com"];
- [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
效果图:
7、代理方法
- // 网页开始加载的时候调用
- -(void)webViewDidStartLoad:(UIWebView *)webView
- // 网页加载完成的时候调用
- -(void)webViewDidFinishLoad:(UIWebView *)webView
- // 网页加载出错的时候调用
- -(void)webView:(UIWebView )webView didFailLoadWithError:(NSError )error
- // 网页中的每一个请求都会被触发这个方法,返回NO代表不执行这个请求(常用于JS与iOS之间通讯)
- -(BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType
想要了解更多内容的小伙伴,可以点击查看源码,亲自运行测试。
疑问咨询或技术交流,请加入官方QQ群: (452379712)
出处:http://www.cnblogs.com/jerehedu/
本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
IOS中WebView的使用的更多相关文章
- iOS中webView加载URL需要处理特殊字符
今天在项目中遇到webView加载URL时,因为URL中有特殊字符,导致页面无法加载,而且在- (BOOL)webView:(UIWebView )webView shouldStartLoadWit ...
- ios中webview的高级用法(二)
框架: webview与js的通信框架 #import "MJViewController.h" #import "MBProgressHUD+Add.h" ...
- ios中webview的高级用法
.隐藏上下滚动时出边界的后面的黑色的阴影 - (void) hideGradientBackground:(UIView*)theView { for (UIView * subview in the ...
- ios中,长按Webview中的图片
我们所要解决的问题如题目所示:ios中,长按Webview中的图片,将图片保存到本地相册. 解决方案:对load的html网页,执行js注入,通过在webview中执行js代码,来响应点击事件,通过j ...
- Unity在Android和iOS中如何调用Native API
本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调 ...
- IOS修改webView背景透明以及IOS调用前台js的方法
工作上遇到IOS的webView中的H5页面需要透明以显示webView的背景颜色.用H5自身的透明度的css样式或者js控制背景颜色及透明度都打不到想要的效果,最后还是通过ios设置webView中 ...
- 【iOS】WebView加载HTML图片大小自适应与文章自动换行
在很多App中都会使用到webview,尤其是在加载新闻内容等文章形式的数据时.因为图文混编以及不同字体格式的显示,在iOS进行编辑 和显示都是一大问题(当然,iOS中也可以用CoreText进行绘制 ...
- Cordoval在iOS中的运用整理
一:关于Cordoval理论知识 1:PhoneGap是手机平台上流行的一款中间件.它构建在各种手机平台所提供的WebView(浏览器内核)组件的基础之上,使用javascript语言对应用开发者提供 ...
- 浅谈iOS中的userAgent
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
随机推荐
- Docker —几个概念的理解
本文从一种使用场景来引出docker,并讨论了什么是镜像,容器,仓库,以及docker的相关概念. 试想一种使用场景: 我的wordpress 博客网站现在部署在阿里云服务器上,但是在后期的使用中我有 ...
- 【JAVAWEB学习笔记】网上商城实战4:订单模块
今日任务 完成订单模块的功能 1.1 订单 模块的功能 1.1.1 我的订单: [我的订单的查询] * 在header.jsp中点击我的订单. * 提交到Servlet: * 获得用户 ...
- 【BZOJ 4180】 4180: 字符串计数 (SAM+二分+矩阵乘法)
4180: 字符串计数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 164 Solved: 75 Description SD有一名神犇叫做Oxe ...
- 51nod1515 明辨是非 并查集 + set
一开始想的时候,好像两个并查集就可以做......然后突然懂了什么.... 相同的并查集没有问题,不同的就不能并查集了,暴力的来个set就行了..... 合并的时候启发式合并即可做到$O(n \log ...
- 【尺取法】POJ3061 & POJ3320
POJ3061-Subsequence [题目大意] 给定长度微n的数列整数及整数s.求出总和不小于s的连续子序列的长度的最小值.如果节不存在,则输出0. [思路] 尺取法五分钟裸裸裸~刷水刷出了罪恶 ...
- 【LCA/tarjan】POJ1470-Closest Common Ancestors
[题意] 给出一棵树和多组查询,求以每个节点为LCA的查询数有多少? [错误点] ①读入的时候,注意它的空格是随意的呀!一开始不知道怎么弄,后来看了DISCUSS区大神的话: 询问部分输入: scan ...
- ms08-067漏洞的复现
MS08-067漏洞重现 (1):MS08-067远程溢出漏洞描述 MS08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC ...
- vagrant 常用命令以及常用操作
列出这些命令,主要是防止脑内存不足.目前这些命令是我常用的,以后其他命令用的多,我再继续添加... 分享些本人用的百度网盘box,国外的太坑... 本人分享的百度网盘:http://pan.baidu ...
- 51..分治算法练习: 4378 【Laoguo】循环比赛
时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 设有n个选手进行循环比赛,其中n=2的m次方,要求每名选手要与其他n ...
- PAT甲级1016. Phone Bills
PAT甲级1016. Phone Bills 题意: 长途电话公司按以下规定向客户收取费用: 长途电话费用每分钟一定数量,具体取决于通话时间.当客户开始连接长途电话时,将记录时间,并且客户挂断电话时也 ...