zoukankan      html  css  js  c++  java
  • ios-网络篇webview的简单应用

    一、简单介绍

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

    打印查看:

  • 相关阅读:
    2016CCPC东北地区大学生程序设计竞赛 1003 HDU5924
    2016CCPC东北地区大学生程序设计竞赛 1001 HDU5922
    Codeforces Round #375 (Div. 2) D
    linux开发缩写
    unity实现玻璃效果
    商业智能在公安交通管理领域的应用
    unity shaderlab Blend操作
    某中国500强企业BI系统成功应用案例
    Unity 5.X扩展编辑器之打包assetbundle
    unity描边效果
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/4154944.html
Copyright © 2011-2022 走看看