iOS基础 - UIWebView
一、UIWebView简介
是iOS内置的浏览器控件,可以浏览网页、打开文档等
能够加载html/htm、pdf、docx、txt等格式的文件
系统自带的Safari浏览器就是通过UIWebView实现的
二、关于MIME type
MIME的英文全称是“Multipurpose Internet Mail Extensions” 多用途互联网邮件扩展,是一个互联网标准,最早应用于电子邮件系统,后来应用到浏览器
服务器通过说明多媒体数据的MIME类型,告诉浏览器发送的多媒体数据的类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等
服务器将MIME标志符放入传送的数据中告诉浏览器使用哪种插件读取相关文件
MIME类型能包含视频、图像、文本、音频、应用程序等数据
三、获得本地文件的MIMEType
// 获得本地文件的MIMEType
- (NSString *)MIMEType:(NSString *)fileName
{
// 定义路径
NSString *path = [[NSBundle mainBundle]pathForResource:fileName ofType:nil];
// 定义URL
NSURL *url = [NSURL fileURLWithPath:path];
// 定义请求
NSURLRequest *request = [NSURLRequest requestWithURL: url];
// 定义响应
NSURLResponse *response = nil;
// 发送同步请求
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSLog(@"MIMEType is %@", [response MIMEType]);
return [response MIMEType];
}
四、UIWebViewDelegate代理方法
// 网页开始加载的时候调用
- (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
五、JS与iOS之间的通信iOS调用JS代码
// 获取当前页面的url
NSString *url = [_webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSLog(@"url %@", url);
// 获取当前页面的标题
NSString *title = [_webView stringByEvaluatingJavaScriptFromString:@"document.title"];
NSLog(@"title %@", title);
// 提交表单
[_webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];
iOS基础 - UIWebView的更多相关文章
- IOS客户端UIwebview下web页面闪屏问题
基于ios客户端uiwebview下的web页面,在其内容高度大于视窗高度时,如果点击超过视窗下文档的底部按钮,收缩内容高度,会发生闪屏问题. 外因是由文档的高度大于视窗的高度所致,本质原因未知. 解 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- iOS 基础日记-修饰符
今晚随便温习了一下iOS 基础关于修饰符这块的东西,下面简单的来描述一下,其中有的也是在网络学习到的: strong与weak是由ARC新引入的对象变量属性 ARC的解释:ARC引入了新的对象的生命周 ...
- ios上uiwebview的一些实用技巧
前几个星期接到公司一个项目,要用webview在客户端上播视频,作为一个前端实习生,这种需求真是蛋疼……一不知webview是何方神圣,二不知咋调试…… 下面就是蛋疼的开始: 寻找调试工具:好,非w ...
- iOS基础问答面试
<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw> ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- [置顶] IOS 基础入门教程
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
- iOS中UIWebView执行JS代码(UIWebView)
iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被 ...
- iOS 基础:Frames、Bounds 和 CGGeometry
https://segmentfault.com/a/1190000004695617 原文:<iOS Fundamentals: Frames, Bounds, and CGGeometry& ...
随机推荐
- 工作介绍xml书包文件
光开放平台一个非常重要的特点就是简化了对xml文件的操作,您能非常轻松地引入xml文件.定位到随意节点.增删属性和文本以及节点本身,以下咱们用实例来介绍对xml的操作 引入xml文件: <cht ...
- Do a “git export” (like “svn export”)?(转)
Probably the simplest way to achieve this is with git archive. If you really need just the expanded ...
- SQL中条件放在on后与where后的区别
SQL中on条件与where条件的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: ...
- css+html简单的布局demo
于html介绍css作风.可以改变html块状布局,局更加美观.接下来看一个基础布局的小样例: <html> <head> <meta http-equiv=" ...
- [译文]c# /.Net 技巧: ToDictionary() and ToList()
前言: 有两个简单好用的LINQ扩展方法 ToDictionary() 和ToList(),你可能知道或不知道,但是它的的确确可以简化查询转化为集合的任务: 简介: LINQ和延迟执行 据你所认识的L ...
- DevExpress asp.net 导出Excel 自动开启迅雷问题,默认保存为aspx页面
目前采取曲线救国策略: 利用MVC ..... <dx:ASPxGridView ID="ASPxGridView1" runat="server" Au ...
- 8.无法訪问developer.android.com的解决方式。
问题:无法訪问developer.android.com,就无法知道Android的最新信息. 解决的方法:寻找国外的代理ip,比方http://www.xici.net.co/上面的国外代理ip. ...
- .Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~
原文:.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~ 目前的企业级开发比较流行的是Web2.0技术,但是由于Web技术基于请求--响应的交互模式 ...
- 使用jquery实现放大镜效果
原文:使用jquery实现放大镜效果 实现原理 首先,我们讲解一下放大镜效果的实现方式: 方法一:准备一张高像素的大图,当鼠标放到原图上,加载显示大图的对应位置. 方法二:对原图片进行放大,也就是调整 ...
- js前端分页之jQuery
锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比 ...