ios-网络篇webview的简单应用

一、简单介绍

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;

 

二、基本使用

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
复制代码

打印查看:

 

posted @ 2014-12-10 11:08  离子  阅读(475)  评论(0编辑  收藏  举报