`
R任轩
  • 浏览: 16125 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

UIWebView网页视图

 
阅读更多

一.UIWebView加载的时候通常有几种方法

1.loadRequest:

2.loadHTMLString:string  baseURL:

3.loadData:MIMEType:textEncodingName:baseURL:

其中baseURL 是指基准的url 是一个绝对的地址,程序要用到的其他资源就可以根据这个基准地址进行查找而不用再次定位到绝对地址;

二.UIWebView中几个重要的函数

1.- (void )webViewDidStartLoad:(UIWebView  *)webView   网页开始加载的时候调用

2.- (void )webViewDidFinishLoad:(UIWebView  *)webView  网页加载完成的时候调用

3.-(BOOL )webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType )navigationType

当程序以UIWebView加载方式1进行加载的时候就会调用到此函数,然后执行webViewDidStartLoad函数,所以我们可以在此函数中进行一些请求解析,URL地址分析的工作。

4.- (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error

是一个可选的函数,如果页面加载失败可以根据不同的错误类型反馈给用户不同的信息

三.代码实现

1.在.h文件中加载声明UIWebviewDelegate协议

声明WebView

2.实现UIWebView

WebView  = [[ UIWebView   alloc]  initWithFrame: CGRectMake(x,x,x,x )];

[ WebView   setUserInteractionEnabled: YES ];  //是否支持交互

[ WebView   setDelegate: self ];  //委托

[ WebView   setOpaque: NO ];  //透明

[ self . view  addSubview : WebView];  //加载到自己的view

 

url = [[ NSURL alloc ] initWithString :@"http:"];

[ WebView loadRequest:[ NSURLRequest requestWithURL: url ]];  //笔者习惯采用loadRequest方式,你可以采用其他方式

opaqueview = [[ UIView   alloc]  initWithFrame: CGRectMake(x ,  x ,  x ,  x )];        //opaqueview 需要在.h文件中进行声明 用以做UIActivityIndicatorView的容器view;

activityIndicator  = [[ UIActivityIndicatorView   alloc]  initWithFrame: CGRectMake( x ,  x ,  x ,  x )];//需要在.h文件中进行声明

[ activityIndicator  setCenter :  opaqueview. center ];

[ activityIndicator   setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite];  //颜色根据不同的界面自己调整

[ opaqueview  setBackgroundColor:[ UIColor   blackColor]];

[ opaqueview  setAlpha: 0.6 ];

[ self . view  addSubview :  opaqueview];

[ opaqueview  addSubview : activityIndicator];

接下来添加

- (void )webViewDidFinishLoad:(UIWebView *)webView {

[activityIndicator stopAnimating];

opaqueview.hidden  = YES ;

}

- (void )webViewDidStartLoad:(UIWebView *)webView {     

[ activityIndicator startAnimating ]; 

opaqueview.hidden  = NO ;

}

//.h文件
@interface ViewController : UIViewController<UIWebViewDelegate>{
    IBOutlet UIWebView *webView;
    UIActivityIndicatorView *activityIndicatorView;
    UIView *opaqueview;
}

//.m文件
- (void)viewDidLoad
{
    [superviewDidLoad];
webView = [[UIWebViewalloc] initWithFrame:CGRectMake(0, 44, 320, 440 )];
    [webViewsetUserInteractionEnabled:YES];             //是否支持交互
    [webView setDelegate:self];                          //委托
    [webView setOpaque:NO];                              //Opaque为不透明的意思,这里为透明
    [webView setScalesPageToFit:YES];                    //自动缩放以适应屏幕
    [self.view addSubview:webView];             

//加载网页的方式
    //1.创建并加载远程网页
    NSURL* url = [NSURLURLWithString:@"http://www.baidu.com"];
    [webViewloadRequest:[NSURLRequestrequestWithURL:url]];  
    //2.加载本地文件资源
//    NSURL *url = [NSURL fileURLWithPath:filePath];  //filePath为文件路径
//    NSURLRequest *request = [NSURLRequest requestWithURL:url];
//    [webView loadRequest:request];

    //3.读入一个 HTML,直接写入一个HTML代码
//    NSString *htmlPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"webapp/loader.html"];//相当于文件地址
//    NSString *htmlString = [NSString stringWithContentsOfFile: htmlPath encoding:NSUTF8StringEncoding error:NULL];
//    [webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
 opaqueview = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; //opaqueview 需要在.h文件中进行声明用以做UIActivityIndicatorView的容器view;

    activityIndicatorView = [[UIActivityIndicatorViewalloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [activityIndicatorView setCenter:opaqueview.center];

    [ activityIndicatorView   setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite];  //颜色根据不同的界面自己调整   
    [ opaqueview  setBackgroundColor:[ UIColor   blackColor]];  
    [ opaqueview  setAlpha: 0.6 ];
    [ self . view  addSubview :  opaqueview];    
    [ opaqueview  addSubview : activityIndicatorView];
}

//当网页视图已经开始加载一个请求之后得到通知

- (void) webViewDidStartLoad:(UIWebView  *)webView {
    [activityIndicatorViewstartAnimating];
    opaqueview.hidden = NO;
}

//当网页视图结束加载一个请求之后得到通知

- (void) webViewDidFinishLoad:(UIWebView *)webView{
    [activityIndicatorViewstopAnimating]; //停止风火轮
    opaqueview.hidden = YES; //隐藏
}

 

分享到:
评论

相关推荐

    网页视图 UIWebView

    创建一个UIWebView实例很简单,只需要在代码中初始化或者通过Storyboard拖拽到视图控制器上。然后,通过调用`loadRequest:`方法,我们可以加载指定URL的网页内容。例如: ```swift let webView = UIWebView(frame: ...

    ios 网页视图与警告视图u

    在iOS开发中,网页视图(WebView)和警告视图(Alert View)是两种非常重要的UI组件,它们分别用于展示网络内容和与用户进行交互。接下来,我们将详细探讨这两个概念及其在实际应用中的使用。 首先,让我们来看看...

    轻松学iPhone开发之网页视图和滚动视图PPT学习教案.pptx

    【网页视图与滚动视图】在iPhone应用开发中,是构建用户界面的重要组成部分,尤其对于展示网络内容和实现互动性具有关键作用。本教程详细介绍了如何创建和使用这两种视图。 首先,我们来了解**网页视图(WebView)*...

    iPhone开发之UIWebView示例程序

    2. **UIWebView的创建与布局**:在视图控制器的视图加载完成时,我们需要创建UIWebView对象并将其添加到视图层次结构中。这通常在`- (void)viewDidLoad`方法中进行。设置其frame以确定在屏幕上的位置和大小,例如`...

    UIWebViewDemo

    这段代码创建了一个填充整个父视图的`UIWebView`对象,并将其添加到当前视图控制器的视图上。在Interface Builder中,只需将`UIWebView`拖放到视图上,并设置相应的约束以适应屏幕大小。 接着,加载网页内容通常是...

    IOS UIWebView Demo

    【标题】:“IOS UIWebView Demo”是一个iOS应用开发中的实例,它主要展示了如何在iOS应用中集成和使用UIWebView组件来加载和展示网页内容。UIWebView是Apple iOS SDK提供的一种原生控件,用于在iOS应用程序内部显示...

    cocos2d-x 学习日志(2)之使用UIWebView加载网页

    UIWebView是cocos2d-x中的一个视图组件,用于显示HTML内容。在`cocos2d-x v3.x`及以上版本中,UIWebView被引入,使得游戏和网页交互变得更加便捷。下面我们将详细讲解如何在cocos2d-x中使用UIWebView加载网页。 1. ...

    UIWebView的使用

    在iOS开发中,UIWebView是苹果提供的一种非常重要的组件,它允许开发者在应用程序内部嵌入网页内容,实现类似浏览器的功能。这个"UIWebView的使用"示例是一个基础的学习项目,旨在帮助开发者理解如何通过UIWebView...

    UIWebView使用

    1. 初始化:UIWebView可以通过初始化方法创建,例如`initWithFrame:frame`,指定一个矩形区域作为web视图的大小。 ```swift let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: ...

    UIWebView Demo代码

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用程序内展示网页内容。这个"UIWebView Demo代码"示例旨在帮助开发者理解如何使用UIWebView来加载和交互网页。下面我们将深入探讨UIWebView的主要功能、...

    UIWebView+html+css

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。这个话题“UIWebView+html+css”主要关注如何在UIWebView中嵌入HTML和CSS,实现可点击的链接以及显示动态的GIF动画效果。下面将详细讲解这个...

    UIWebView加载html

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。这篇博客“UIWebView加载html”很可能是讨论如何利用UIWebView来加载并显示HTML代码,这对于构建混合式应用或者需要在App内嵌入网页...

    swift-一劳永逸iOS网页视图控制器通用类封装

    "swift-一劳永逸iOS网页视图控制器通用类封装"项目就是针对这一需求,提供了一个通用的WebViewController类,旨在简化开发者的工作,提高代码复用性。 这个项目的核心是创建一个自定义的`SureWebViewController`,...

    IOS自定义请求uiwebview的loading框

    在iOS开发中,UIWebView是苹果提供的一种用于加载和展示网页内容的组件。然而,UIWebView在加载网页的过程中,没有内置的loading提示效果,这可能导致用户在等待网页加载时感到困惑或不耐烦。因此,自定义一个加载...

    ios-完美的UIWebView.zip

    总之,这个资料包对于想要深入理解iOS中网页视图展示的开发者来说是非常有价值的,无论是对于还在使用UIWebView的老项目进行优化,还是新项目中直接采用WKWebView,都能从中获取实用的知识和经验。通过学习和实践,...

    iOS开发之UIWebView

    1. **初始化UIWebView**: 在界面设计中,可以通过Interface Builder或代码方式添加UIWebView到视图控制器。通过代码初始化通常如下: ```swift let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view....

    oc中UIWebView交互 JS交互

    UIWebView是UIKit框架的一部分,它允许我们在iOS应用中内嵌一个浏览器视图,显示HTML、CSS和JavaScript编写的网页内容。开发者可以通过UIWebView加载本地或远程的HTML资源,并且可以通过其提供的API与网页内容进行...

    UIWebView实现https双向认证请求

    在iOS开发中,UIWebView是苹果提供的一种网页视图组件,它允许我们在应用程序中嵌入网页内容并与其交互。在某些高级应用场景下,比如金融、政务等对安全性要求极高的领域,我们需要实现HTTPS的双向认证(Mutual SSL ...

    ios-一个视图中两个控制器来回的切换 UISegmentedControl UIwebView.zip

    UIWebView是iOS中的一个组件,用于加载和显示网页内容。它可以嵌入到任何UIViewController中,使应用能够展示HTML、CSS和JavaScript驱动的页面。在这个项目中,我们有两个UIWebView实例,分别对应UISegmentedControl...

Global site tag (gtag.js) - Google Analytics