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 类型能包含视频、图像、文本、音频、应用程序等数据
    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3495622.html

获得本地文件的 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 ];  } 

UIWebView 演练 —— 准备项目介绍    


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

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];  } 


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

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

 
UIWebView—— 加载本地 PDF 文件    


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 ]; 

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 ,程序要用到其他资源的位置   
   

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(); " ]; 

本节知识点回顾    
  UIWebView 是内置浏览器控件,能够加载 html pdf txt 等多种格式文件
  常用加载方法:    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 代码与页面通讯    

 

 

 

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

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

你可能感兴趣的:(UIWebView)