一、简单介绍
1.简单说明
UIWebView是iOS内置的浏览器控件
系统自带的Safari浏览器就是通过UIWebView实现的
UIWebView不但能加载远程的网页资源,还能加载绝⼤部分的常见文件 htmlhtm pdf、doc、ppt、txt mp4 ......
2.UIWebView常⽤的加载资源的方法
- (void)loadRequest:(NSURLRequest *)request;
3.常用的属性和方法
重新加载(刷新) - (void)reload;
停⽌止加载 - (void)stopLoading;
回退 - (void)goBack;
前进 - (void)goForward;
需要进⾏检测的数据类型 @property(nonatomic) UIDataDetectorTypes dataDetectorTypes
是否能回退 @property(nonatomic,readonly,getter=canGoBack) BOOL canGoBack;
是否能前进 @property(nonatomic,readonly,getter=canGoForward) BOOL canGoForward;
是否正在加载中 @property(nonatomic,readonly,getter=isLoading) BOOL loading;
是否伸缩内容至适应屏幕当前尺寸 @property(nonatomic) BOOL scalesPageToFit;
4.监听UIWebView的加载过程
成为UIWebView的代理,遵守UIWebViewDelegate协议,就能监听UIWebView的加载过程
开始发送请求(加载数据)时调用这个方法
- (void)webViewDidStartLoad:(UIWebView *)webView;
请求完毕(加载数据完毕)时调⽤这个方法
- (void)webViewDidFinishLoad:(UIWebView *)webView;
请求错误时调用这个方法
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
5.监听UIWebView的加载过程
UIWebView在发送请求之前,都会调⽤用这个⽅方法,如果返回NO,代表停⽌止加载 请求,返回YES,代表允许加载请求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
二、基本使用
1.示例一
新建一个项目,在storyboard中的UIView中拖一个UIWedView控件。
最简单的使用:
(1)创建一个网络请求
(2)加载网络请求
代码:
1 // 2 // YYViewController.m 3 // 01-UIwebview的基本使用 4 // 5 // Created by 孔医己 on 14-7-2. 6 // Copyright (c) 2014年 itcast. All rights reserved. 7 // 8 9 #import "YYViewController.h" 10 11 @interface YYViewController () 12 @property (weak, nonatomic) IBOutlet UIWebView *webView; 13 14 @end 15 16 /** 17 * UIWebView:浏览器,可以用来浏览常见格式的文件,如html/txt/doc/ppt/mp4等 18 */ 19 @implementation YYViewController 20 21 - (void)viewDidLoad 22 { 23 [super viewDidLoad]; 24 25 //1.创建网络请求 26 NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"]; 27 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 28 29 //加载网络请求 30 [self.webView loadRequest:request]; 31 32 } 33 34 @end
模拟器效果:
2.监听UIWebView
代码示例:
1 // 2 // YYViewController.m 3 // 01-UIwebview的基本使用 4 // 5 // Created by 孔医己 on 14-7-2. 6 // Copyright (c) 2014年 itcast. All rights reserved. 7 // 8 9 #import "YYViewController.h" 10 //使用第三方框架 11 #import "MBProgressHUD+MJ.h" 12 13 @interface YYViewController ()<UIWebViewDelegate> 14 @property (weak, nonatomic) IBOutlet UIWebView *webView; 15 16 @end 17 18 /** 19 * UIWebView:浏览器,可以用来浏览常见格式的文件,如html/txt/doc/ppt/mp4等 20 */ 21 @implementation YYViewController 22 23 - (void)viewDidLoad 24 { 25 [super viewDidLoad]; 26 27 //1.创建网络请求 28 NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"]; 29 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 30 31 //2.设置WebView的代理 32 self.webView.delegate=self; 33 //伸缩内容适应屏幕尺寸 34 self.webView.scalesPageToFit=YES; 35 36 //加载网络请求 37 [self.webView loadRequest:request]; 38 39 } 40 41 #pragma mark-UIWebViewDelegate 42 /** 43 *WebView开始加载资源的时候调用(开始发送请求) 44 */ 45 -(void)webViewDidStartLoad:(UIWebView *)webView 46 { 47 NSLog(@"webViewDidStartLoad---"); 48 [MBProgressHUD showMessage:@"正在加载···"]; 49 } 50 51 /** 52 *WebView加载完毕的时候调用(请求完毕) 53 */ 54 -(void)webViewDidFinishLoad:(UIWebView *)webView 55 { 56 NSLog(@"webViewDidFinishLoad---"); 57 [MBProgressHUD hideHUD]; 58 } 59 60 /** 61 *WebView加载失败的时候调用(请求失败) 62 */ 63 -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 64 { 65 NSLog(@"didFailLoadWithError---"); 66 [MBProgressHUD hideHUD]; 67 } 68 69 70 @end
打印查看: