UIWebView是iOS中比较常用的控件,简单介绍一下:
1.简单说明
UIWebView是iOS内置的浏览器控件
系统自带的Safari浏览器就是通过UIWebView实现的
UIWebView不但能加载远程的网页资源,还能加载绝⼤部分的常见文件 html\htm 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;
实例演示:
#import "MainViewController.h"
@interface MainViewController ()<UIWebViewDelegate>
@property (nonatomic,retain)UIWebView *webyouhuo;
@property (nonatomic,retain)UIActivityIndicatorView *jihua;
@property (nonatomic,retain)UIView *viw;
@end
@implementation MainViewController
- (void)dealloc
{
[_webyouhuo release];
[_jihua release];
[_viw release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
self.webyouhuo = [[UIWebView alloc]initWithFrame:self.view.bounds];
self.webyouhuo.delegate = self;
[self.view addSubview:self.webyouhuo];
[_webyouhuo release];
//请求url
NSString *str = @"http://www.yohobuy.com";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *urll = [NSURL URLWithString:str];
NSMutableURLRequest *requ = [NSMutableURLRequest requestWithURL:urll cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
//加载
[self.webyouhuo loadRequest:requ];
[_webyouhuo release];
self.viw = [[UIView alloc]initWithFrame:self.view.bounds];
self.viw.backgroundColor = [UIColor blackColor];
[self.view addSubview:self.viw];
[_viw release];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"ttttt");
self.jihua = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
self.jihua.frame = CGRectMake(0, 0, 32, 32);
// 设置菊花在视图中心位置
self.jihua.center = self.viw.center;
[self.viw addSubview:self.jihua];
NSLog(@"sdfghjk");
//开始转动
[self.jihua startAnimating];
[_jihua release];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"1234567890");
[self.jihua stopAnimating];
NSLog(@"66666");
[self.viw removeFromSuperview];//移除(结束的时候就移除)
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"vvvvvv");
[self.jihua stopAnimating];
[self.jihua removeFromSuperview];
}
展示结果: