iOS开发网络篇—UIWebView简单介绍

iOS开发网络篇—UIWebView简单介绍

一、简单介绍

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

打印查看:

iOS开发网络篇—UIWebView简单介绍

时间: 2024-12-27 23:49:28

iOS开发网络篇—UIWebView简单介绍的相关文章

iOS开发拓展篇-XMPP简单介绍

iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容 有许多的IM系统,如AOL IM.Yahoo IM. MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议 协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已

iOS开发多线程篇—多线程简单介绍

iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程

iOS开发UI篇-UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow.也就说,没有UIWindow,就看不见任何UI界面 补充:UIWindow是创建的第一个视图控件(创建的第一个

iOS开发数据库篇—FMDB简单介绍

iOS开发数据库篇—FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 3.FMDB的github地址 https://github.com/ccgus/fmdb 二.核心类 FMDB有三个主要的类 (1)FMDa

文顶顶 iOS开发UI篇—Kvc简单介绍

ios开发UI篇—Kvc简单介绍 一.KVC简单介绍 KVC key valued coding 键值编码 KVC通过键值间接编码 补充: 与KVC相对的时KVO,即key valued observer 键值观察.监听某一个模型的属性,只要模型属性的值一变化就通知你. 二.使用KVC 1.KVC基本使用介绍 (1)代码示例: 新建一个命令行项目,用以演示KVC的用法 完成之后为项目添加一个Person类. 为Person类添加两个属性(name和age),注意这两个属性的类型. 1 #impo

iOS开发UI篇—UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 - 文顶顶 - 博客园 文顶顶 iOS开发UI篇—UIWindow简单介绍 iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWi

iOS开发多线程篇—NSOperation简单介绍

iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOpe

iOS开发UI篇—Modal简单介绍

iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展?出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为? 二.代码说明 新建一个项目,在Application的代理中添加window和控制器. TXAppDelegate.m文件 1 #import "TXAppDelegate.h" 2 #import "TXOneViewController

iOS开发UI篇—popoverController简单介绍

iOS开发UI篇—popoverController简单介绍 一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤 (1)设置内容控制器 由于UIPopoverController直接继承