一、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的更多相关文章

  1. IOS客户端UIwebview下web页面闪屏问题

    基于ios客户端uiwebview下的web页面,在其内容高度大于视窗高度时,如果点击超过视窗下文档的底部按钮,收缩内容高度,会发生闪屏问题. 外因是由文档的高度大于视窗的高度所致,本质原因未知. 解 ...

  2. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  3. iOS 基础日记-修饰符

    今晚随便温习了一下iOS 基础关于修饰符这块的东西,下面简单的来描述一下,其中有的也是在网络学习到的: strong与weak是由ARC新引入的对象变量属性 ARC的解释:ARC引入了新的对象的生命周 ...

  4. ios上uiwebview的一些实用技巧

    前几个星期接到公司一个项目,要用webview在客户端上播视频,作为一个前端实习生,这种需求真是蛋疼……一不知webview是何方神圣,二不知咋调试…… 下面就是蛋疼的开始:  寻找调试工具:好,非w ...

  5. iOS基础问答面试

    <简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw> ...

  6. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  7. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  8. iOS中UIWebView执行JS代码(UIWebView)

    iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被 ...

  9. iOS 基础:Frames、Bounds 和 CGGeometry

    https://segmentfault.com/a/1190000004695617 原文:<iOS Fundamentals: Frames, Bounds, and CGGeometry& ...

随机推荐

  1. 关闭safari浏览器button默认样式

    前两天又遇到一个头疼的问题,在Chrome上调试好的样式,去到手机上打开,傻了... 这是什么鬼... 搜了一下,才知道这是appearance属性搞的鬼.. . 比方你想让一个div拥有button ...

  2. Effective C++之‘宁以pass-by-reference-to-const替换pass-by-value’

    Effective C++之'宁以pass-by-reference-to-const替换pass-by-value' 缺省情况下C++以by value 方式(一个继承自C的方式)传递对象至函数.除 ...

  3. C#操作Excel初探

        近期一段时间正好在做winform导出Excel报表的问题,学习了一下C#操作Excel的一些方法(如:向Excel中插入图片:删除Excel指定sheet中的某行或某列,在Excel指定的单 ...

  4. 【翻译自mos文章】v$undostat视图没有依照每10分钟进行更新,v$undostat仅仅有1行(one rows)

    v$undostat视图没有依照每10分钟进行更新,v$undostat仅仅有1行(one rows) 參考原文: The V$UNDOSTAT view is not getting updated ...

  5. http协议报头信息和主体鉴别

    http协议报头信息和主体是使用一个空行分开.这是什么空行?简单的说,那是,\r\n\r\n. 所以会server数据的回归\r\n\r\n结果分离,一个是标题信息.它是一个消息的文本. C#例如,下 ...

  6. MVC02

    1.在EF5.0修改实体的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误db.Configuration.ValidateOn ...

  7. JavaScript实现简单日历

    页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  8. ultraEdit-32 PHP/HTML智能提示

    原文 ultraEdit-32 PHP/HTML智能提示 高级–>配置–>编辑器–>自动完成–>勾选自动显示……选项,在下面输入框中输入你要求输出多个字符才出现提示,比如 ec ...

  9. 序列化悍将Protobuf-Net

    序列化悍将Protobuf-Net,入门动手实录 最近在研究web api 2,看了一篇文章,讲解如何提升性能的, 在序列化速度的跑分中,Protobuf一骑绝尘,序列化速度快,性能强,体积小,所以打 ...

  10. ANDROID定义自己的观点——模仿瀑布布局(源代码)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 在自己定义view的时候,事实上非常easy,仅仅须要知道3步骤: 1.測量- ...