UIWebView---iOS-Apple苹果官方文档翻译



UIWebView 
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

 
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 = [[NSBundlemainBundle]pathForResource:fileName ofType:nil]; 
// 定义URL NSURL *url = [NSURL fileURLWithPath:path]; 
// 定义请求 NSURLRequest *request = [NSURLRequestrequestWithURL: url]; 
// 定义响应 NSURLResponse *response = nil; 

// 发送同步请求 [NSURLConnectionsendSynchronousRequest:requestreturningResponse:&response
error:nil]; 
NSLog(@"MIMEType is %@", [response MIMEType]); 
return [response MIMEType]; }

UIWebView演练--准备项目介绍 

准备项目说明 
• gotoURLString方法由文本框回车事件调用,为了 方便用户加载本地文件 

UIWebView演练(1)--gotoURL方法 
// 访问指定的URL内容 - (void)gotoURL:(NSURL*)url { 
// 使用URL字符串替代URL文本框 [_urlText setText:[url absoluteString]]; 
// 定义请求 
NSURLRequest *request = [NSURLRequestrequestWithURL:url]; // 设置数据检测类型[_webViewsetDataDetectorTypes:UIDataDetectorTypeAll];

// 加载请求 
[_webView loadRequest:request]; } 



UIWebView--访问网站和加载本地HTML文件 

 
UIWebView--加载本地文本文件和Word文档 

 
UIWebView--加载本地PDF文件 


UIWebView演练(2)--loadHTMLString方法 // 测试加载HTML字符串 
NSString *html = @"

Hello chenyilong

"; 
[_webView loadHTMLString:htmlbaseURL:nil]; 
// 测试加载部分HTML字符串,不需要显示整个网页内容时,通常使用此方法 NSString *partHtml = @"

Hello chenyilong

";
[_webView loadHTMLString:partHtmlbaseURL:nil]; 


UIWebView演练(3)--loadData方法 
// 测试加载本地PDF,需要指定MIMETYPE     ...... 
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"application/pdf"textEncodingName:@"UTF-8" baseURL:nil]; 
// 测试加载本地文本文件,需要指定MIMETYPE     ...... 
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"text/plain" textEncodingName:@"UTF-8"baseURL:nil]; 

// 测试加载本地HTML文件,需要指定MIMETYPE 
...... 
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]resourcePath]isDirectory:YES]; 
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"text/html" textEncodingName:@"UTF-8"baseURL:baseURL]; 

说明:baseURL是基准URL,程序要用到其他资源的位置 


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 


JSiOS之间的通信--iOS调用JS代码     
// 获取当前页面的url 

NSString *url = [_webViewstringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSLog(@"url %@", url); 
// 获取当前页面的标题 NSString *title = [_webView
stringByEvaluatingJavaScriptFromString:@"document.title"];NSLog(@"title %@", title);

// 提交表单 
[_webViewstringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]; 

本节知识点回顾 
• UIWebView是内置浏览器控件,能够加载html、pdf、txt等多种格式文件
• 常用加载方法: - loadRequest:
- loadHTMLString:baseURL:
- loadData:MIMEType:textEncodingName:baseURL:
• 常用导航方法:
-   goBack - 回退     
-   goForward - 前进     
-   reload - 重载     
-   stopLoading - 取消载入内容
• 常用属性:
-   scalespageToFit - 自动对页面进行缩放以适应屏幕 
-   dataDetectorTypes - 设定电话号码、网址、电子邮件和日期等文字变为链接文字
• 浏览器通过MIME标志符可以知道使用哪种插件读取相关文件 • iOS可以直接调用js代码与页面通讯 
© chenyilong. Powered by Postach.io

UIWebView---iOS-Apple苹果官方文档翻译的更多相关文章

  1. iOS数据存取---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog iOS数据存取---iOS-Apple苹果官方文档翻译 数据存取/*技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http:// ...

  2. iOS网络基础---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog iOS网络基础---iOS-Apple苹果官方文档翻译 iOS网络基础 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http: ...

  3. iOS静态库 ---iOS-Apple苹果官方文档翻译

    iOS静态库 ---iOS-Apple苹果官方文档翻译 •什么是库? 库是共享程序代码的方式,一般分为静态库和动态库.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使⽤用就为什 ...

  4. IOS开发苹果官方Sample Code及下载地址

    IOS开发苹果官方Sample Code及下载地址 在线浏览地址:https://developer.apple.com/library/ios/navigation/#section=Resourc ...

  5. CALayer---iOS-Apple苹果官方文档翻译之CALayer

    CHENYILONG Blog CALayer---iOS-Apple苹果官方文档翻译之CALayer CALayer /*技术博客http://www.cnblogs.com/ChenYilong/ ...

  6. NSURLSession---iOS-Apple苹果官方文档翻译

    CHENYILONG Blog NSURLSession---iOS-Apple苹果官方文档翻译 NSURLSession 技术博客http://www.cnblogs.com/ChenYilong/ ...

  7. iOS程序启动原理---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...

  8. 基本控件文档-UITableView---iOS-Apple苹果官方文档翻译

    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3496969.html 技术博客http://www.cnblogs.com/ChenYi ...

  9. 基本控件文档-UITextField属性---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...

随机推荐

  1. Java & hashCode作用

    首先,想要明白hashCode的作用,你必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set.你知道它们的区别吗?前者集合内的元素 ...

  2. web_config配置

    <configuration>    <system.web>      <compilation debug="true" targetFramew ...

  3. javascript之彻底理解valueOf, toString

    参与运算的都是简单类型(一般就字符串和数字), 复杂类型是不参与运算的. ***当对象(非简单类型)用作键时,会先调用toString()方法把对象转化成字符串 var a = {},     b = ...

  4. TP中CURD操作

    CURD操作 CURD操作也就是模型操作数据表的基本操作.C(Create).U(Update).R(Read).D(Delete)操作就是增删改查操作. 6.1.增加操作 回想一下在mysql中增加 ...

  5. floyd最短路

    floyd可以在O(n^3)的时间复杂度,O(n^2)的空间复杂度下求解正权图中任意两点间的最短路长度. 本质是动态规划. 定义f[k][i][j]表示从i出发,途中只允许经过编号小于等于k的点时的最 ...

  6. 使用StoryBoard执行动画

    在WPF动画编程中,最常用的动画处理方式是DoubleAnimation动画,但是随着你的开发经验越来越多,你会发现,有时候使用这个动画类会很麻烦,因为这个动画是封闭动画,也就是说在动画的时间间隔内, ...

  7. 【CF600E】Lomsat gelral(dsu on tree)

    [CF600E]Lomsat gelral(dsu on tree) 题面 洛谷 CF题面自己去找找吧. 题解 \(dsu\ on\ tree\)板子题 其实就是做子树询问的一个较快的方法. 对于子树 ...

  8. 基于Memcached分布式系统DRDoS拒绝服务攻击技术研究(转)

    本次反射式拒绝服务攻击技术基于全球互联网分布式的Memcached服务器,需要储备一定得安全攻防知识,网络协议知识和python代码编程技术.希望在学习本篇文章知识前自行学习相关的基础知识,文章后面同 ...

  9. 【SQL优化】MySQL官网中可优化的层次结构

    正如上一篇中我翻译的那篇文章,关于MySQL数据库优化的宏观介绍,了解到了从大体上来讲,优化MySQL可以从3个角度来讲.那么这一篇文章,则从一个个优化点出发,统计出究竟有多少个地方我们可以来优化My ...

  10. jQuery 前端实现手机验证码

    html <input id="phone" type="text" name="phone"> <input id=&q ...