`

iOS开发之UIWebView

 
阅读更多

UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。这篇文章我将使用这个控件,做一个简易的浏览器。如下图:

 

我们创建一个Window-based Application程序命名为:UIWebViewDemo

UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们定义一个方法用来加载url。在UIWebViewDemoViewController中定义下面方法:

- (void)loadWebPageWithString:(NSString*)urlString{
    NSURL *url =[NSURL URLWithString:urlString];
    NSLog(urlString);
    NSURLRequest *request =[NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
}

 

在界面上放置3个控件,一个textfield、一个button、一个uiwebview,布局如下:

 

在代码中定义相关的控件:webView用于展示网页、textField用于地址栏、activityIndicatorView用于加载的动画、buttonPress用于按钮的点击事件。

@interface UIWebViewDemoViewController :UIViewController<UIWebViewDelegate> {    
    IBOutlet UIWebView *webView;
    IBOutlet UITextField *textField;
    UIActivityIndicatorView *activityIndicatorView;
    
}
- (IBAction)buttonPress:(id) sender;
- (void)loadWebPageWithString:(NSString*)urlString;
@end

 

使用IB关联他们。

设置UIWebView,初始化UIActivityIndicatorView:

- (void)viewDidLoad{
    [super viewDidLoad];
    webView.scalesPageToFit =YES;
    webView.delegate =self;
    activityIndicatorView = [[UIActivityIndicatorView alloc]
                              initWithFrame : CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)] ;
    [activityIndicatorView setCenter: self.view.center] ;
    [activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;
     [self.view addSubview : activityIndicatorView] ;
    [self buttonPress:nil];
    // Do any additional setup after loading the view from its nib.
}

 

UIWebView主要有下面几个委托方法:

1、- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行该方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行该方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行该方法。

我们可以将activityIndicatorView放置到前面两个委托方法中。

- (void)webViewDidStartLoad:(UIWebView *)webView{
    [activityIndicatorView startAnimating] ;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    [activityIndicatorView stopAnimating];
}

 

buttonPress方法很简单,调用我们开始定义好的loadWebPageWithString方法就行了:

- (IBAction)buttonPress:(id) sender
{
    [textField resignFirstResponder]; 
    [self loadWebPageWithString:textField.text];
    
}

 

当请求页面出现错误的时候,我们给予提示:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]  delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [alterview show];
    [alterview release];
}

 

总结:本文通过实现一个简单的浏览器,说明了uiwebview的方法和属性,相信通过这个例子,应该明白uiwebview的使用了。
例子代码: UIWebViewDemo.zip

 

附件中还有其他几个相关的代码。

分享到:
评论
2 楼 国产希特勒 2013-03-17  
找了很久的UIWebView打开网页的文章,有进度条的比较好的确用的是私有的API,有没有不是私有的?
1 楼 国产希特勒 2013-03-17  
请问楼主这个例子能够实现进度条的功能吗?

相关推荐

    实例详解IOS开发之UIWebView

    iOS开发之UIWebView 是本文要介绍的内容,UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。这篇文章我将使用这个控件,做一个简易的浏览器。如下图: 我们创建...

    移动应用开发-iOS开发示例教程之UIWebview.zip

    这个"移动应用开发-iOS开发示例教程之UIWebview.zip"资源可能包含了一系列关于如何使用UIWebView进行移动应用开发的教学材料。下面将详细阐述UIWebView的主要功能、使用方法及其在iOS开发中的应用。 UIWebView是...

    iOS WKWebView和UIWebView自适应高度

    在iOS应用开发中,UIWebView和WKWebView是两种常见的用于展示网页内容的控件。它们允许开发者在原生应用中嵌入HTML、CSS和JavaScript代码,实现丰富的交互体验。本篇文章将深入探讨如何在iOS应用中,特别是针对...

    IOS--UIWebView加载进度条(NJKWebViewProgress)

    在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它可以加载HTML、CSS、JavaScript等Web资源。然而,UIWebView在加载网页时默认并不会显示加载进度,这可能会给用户带来不友好的体验,尤其是在网络...

    IOS自定义请求uiwebview的loading框

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

    iOS WKWebView和UIWebView高度自适应

    在iOS应用开发中,UIWebView和WKWebView是两种常见的用于展示网页内容的组件。它们都是UIKit框架的一部分,允许开发者在iOS应用中嵌入HTML、CSS和JavaScript内容。然而,这两个组件在性能、安全性和功能上有显著的...

    IOS UIWebView Demo

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

    IOS之UIWebView的使用(基本知识)共7页.pdf

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中嵌入网页内容的组件。它允许开发者在App内部展示HTML、CSS和JavaScript等Web技术构建的内容,为用户提供一种与Web服务交互的方式。本资料“IOS之UIWebView的...

    iPhone开发之UIWebView示例程序

    在这个示例程序中,你可以看到这些知识点的具体应用,通过分析和实践,将有助于提升你的iOS开发技能,特别是关于在iPhone应用中集成网页内容的能力。在压缩包中的"Web"文件可能是包含HTML示例页面或其他相关资源,供...

    ios-完美的UIWebView.zip

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序内展示网页内容的组件。它允许开发者在App中嵌入HTML、CSS和JavaScript代码,从而实现丰富的交互性。然而,随着技术的发展,苹果在iOS 8中引入了WKWebView,...

    iOS开发中UIWebView的加载本地数据的三种方式

    在iOS开发中,UIWebView是苹果提供的一种内嵌浏览器组件,它可以用来展示网页内容、打开多种格式的文档,如HTML、PDF、DOCX、TXT等。UIWebView的灵活性使其成为许多应用中的常用组件,特别是在需要展示本地数据时。...

    angular-ios9-uiwebview-patch:Bower和NPM支持IgorMinar的Angular 1.2.0-1.4.5的iOS9补丁

    标题中的“angular-ios9-uiwebview-patch”指的是一个针对AngularJS在iOS 9中遇到问题的解决方案,特别是与UIWebView相关的兼容性问题。AngularJS是Google开发的一个强大的前端JavaScript框架,用于构建交互式和动态...

    ios UIWebView使用

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它允许开发者在应用内部加载HTML、CSS和JavaScript代码,为用户提供一个类似Safari浏览器的浏览体验。下面将详细介绍UIWebView的使用,...

    ios-UIWebView简易浏览器

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用程序内展示网页内容。这个项目"ios-UIWebView简易浏览器"很显然是一个基于UIWebView实现的简单Web浏览器应用。下面我们将深入探讨UIWebView的基本用法、...

    iOS UIWebView URL拦截.pdf

    在iOS应用开发中,UIWebView是一个非常常见的组件,用于加载和显示HTML内容。然而,有时候开发者需要对加载的资源进行一些特殊处理,比如在本文提到的案例中,由于JavaScript文件过大导致加载速度慢,开发者想要将...

    iOS 开发范例实战宝典(进阶篇)

    在iOS开发领域,实战经验是提升技能的关键。"iOS开发范例实战宝典(进阶篇)"聚焦于实际应用中的各种技术,旨在帮助开发者掌握更高级的iOS开发技巧。这本书深入探讨了图形图像处理、数据可视化、网络交互、媒体播放...

    ios源码之透明的UIWebView样例TransparentUIWebViews.rar

    在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它允许开发者在应用内嵌入HTML、CSS和JavaScript代码,实现丰富的交互效果。这个“ios源码之透明的UIWebView样例TransparentUIWebViews”压缩包提供...

Global site tag (gtag.js) - Google Analytics