新浪微博 有道云笔记 麦库 EverNote Pocket Instapaper 更多

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

897b223fe1bf63457e55de6d396ff5bb.png
UIWebView    
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
    
69e4965627462ccd14e95d69a1fed63d.png fb21d376e5dbb2c43910d90b659ebbb3.png
UIWebView简介    
 iOS内置的浏览器控件,可以浏览网页、打开文档等
 能够加载html/htmpdfdocxtxt等格式的文件
 系统自带的Safari浏览器就是通过UIWebView实现的
897b223fe1bf63457e55de6d396ff5bb.png
关于MIME type    
 MIME的英文全称是“Multipurpose Internet Mail Extensions” 多用途互联 网邮件扩展,是一个互联网标准,最早应用于电子邮件系统,后来应 用到浏览器
 服务器通过说明多媒体数据的MIME类型,告诉浏览器发送的多媒体 数据的类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些 是Shockwave文件等等
 服务器将MIME标志符放入传送的数据中告诉浏览器使用哪种插件读 取相关文件    
 MIME类型能包含视频、图像、文本、音频、应用程序等数据
    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495622.html
897b223fe1bf63457e55de6d396ff5bb.png
获得本地文件的MIMEType    
// 获得本地文件的MIMEType     
- (NSString *)MIMEType:(NSString *)fileName 
{ 
897b223fe1bf63457e55de6d396ff5bb.png
// 定义路径     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];  } 

UIWebView演练——准备项目介绍    
897b223fe1bf63457e55de6d396ff5bb.png
6d79a36105205e56eb08a6ad57de9ff8.png
准备项目说明    
 gotoURLString方法由文本框回车事件调用,为了 方便用户加载本地文件    
897b223fe1bf63457e55de6d396ff5bb.png
UIWebView演练(1)——gotoURL方法    
// 访问指定的URL内容     - (void)gotoURL:(NSURL *)url  { 
// 使用URL字符串替代URL文本框     [_urlText setText:[url absoluteString]];  
// 定义请求    
NSURLRequest *request = [NSURLRequest requestWithURL:url];  // 设置数据检测类型     [_webView setDataDetectorTypes:UIDataDetectorTypeAll];
 

// 加载请求//转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495622.html
[_webView loadRequest:request];  } 

897b223fe1bf63457e55de6d396ff5bb.png
UIWebView——访问网站和加载本地HTML文件    
897b223fe1bf63457e55de6d396ff5bb.png
2e0fd1a8974de04c2b55d0ac422d9e47.png e4d75dae18795d9a25cccc1fd669adec.png
UIWebView——加载本地文本文件和Word文档    
897b223fe1bf63457e55de6d396ff5bb.png
5543229a109e458b001570b42662dc31.png 43edb9429a5213602910f01e127d7210.png
UIWebView——加载本地PDF文件    
897b223fe1bf63457e55de6d396ff5bb.png
e77fdb28fa04ddd7d8caa1b33dbbf492.png
UIWebView演练(2)——loadHTMLString方法     // 测试加载HTML字符串    
NSString *html = @"<html><head><title>Hello</title></ head><body><h1>Hello Itcast</h1></body></html>"; 
[_webView loadHTMLString:html baseURL:nil];   
// 测试加载部分HTML字符串,不需要显示整个网页内容时,通常使用此方法     NSString *partHtml = @"<h1>Hello Itcast</h1>";
[
_webView loadHTMLString:partHtml baseURL:nil]; 
897b223fe1bf63457e55de6d396ff5bb.png
UIWebView演练(3)——loadData方法    
// 测试加载本地PDF,需要指定MIMETYPE     ...... 
[_webView loadData:[NSData dataWithContentsOfFile:dataPath] MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil]; 
// 测试加载本地文本文件,需要指定MIMETYPE     ...... 
[_webView loadData:[NSData dataWithContentsOfFile:dataPath] MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil]; 
 
// 测试加载本地HTML文件,需要指定MIMETYPE
//转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495622.html   
...... 
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]resourcePath] isDirectory:YES]; 
[_webView loadData:[NSData dataWithContentsOfFile:dataPath] MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:baseURL]; 
 
说明:baseURL是基准URL,程序要用到其他资源的位置  
   
897b223fe1bf63457e55de6d396ff5bb.png
UIWebViewDelegate代理方法    
// 网页开始加载的时候调用    
- (void)webViewDidStartLoad:(UIWebView *)webView 
 
// 网页加载完成的时候调用    
- (void)webViewDidFinishLoad:(UIWebView *)webView 
 
// 网页加载出错的时候调用    
- (void)webView:(UIWebView *)webView didFailLoadWithError: (NSError *)error 
 
// 网页中的每一个请求都会被触发这个方法,返回NO代表不执行这个请求(常 用于JSiOS之间通讯)    
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType    
897b223fe1bf63457e55de6d396ff5bb.png

JSiOS之间的通信——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(); "]; 
897b223fe1bf63457e55de6d396ff5bb.png
本节知识点回顾    
 UIWebView是内置浏览器控件,能够加载htmlpdftxt等多种格式文件
 常用加载方法:  loadRequest:
 loadHTMLString:baseURL:
 loadData:MIMEType:textEncodingName:baseURL:
 常用导航方法:
&nbsp;&nbsp; goBack  回退     
&nbsp;&nbsp; goForward  前进     
&nbsp;&nbsp; reload - 重载     
&nbsp;&nbsp; stopLoading - 取消载入内容
 常用属性:
&nbsp;&nbsp; scalespageToFit  自动对页面进行缩放以适应屏幕    
&nbsp;&nbsp; dataDetectorTypes - 设定电话号码、网址、电子邮件和日期等文字变为链接文字
 浏览器通过MIME标志符可以知道使用哪种插件读取相关文件  iOS可以直接调用js代码与页面通讯    
897b223fe1bf63457e55de6d396ff5bb.png

 

 

 

https://www.evernote.com/shard/s227/sh/45cac53b-621d-4ffa-a9e2-8fb0a76bd64f/77d5d3dd76e281f2c576495ae2baf84e

本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2013年12月29日更新版)

posted @ 2013-12-28 18:14  iTeaTime(技术清谈)  阅读(1341)  评论(0编辑  收藏  举报