ios开发入门- WebView使用

转自:http://mahaile.blog.51cto.com/2891586/1021515/

目标 : webview使用

在一些移动app中,有时程序会载入 外表的html 界面, android 有 webView ios 有吗, 答案是肯定的, 下面我们来看看 ios 下面的webView 是怎么使用的吧

启动Xcode 创建一个新的ios 项目 , 模板选择 Signle view application , 项目名称命名为 Iphone_sample_WebView class Prefix 命名为 : WebView   如图:

进入项目 ,打开 WebViewViewController.xib 视图文件 拖一个WebView 组件到view中如图

点击助理编辑器

此时界面如下

为webview 建立连接 :  按住  ctrl 键  拖webview组件到 WebViewViewController.h 文件中的@interface WebViewViewController : UIViewController<UIWebViewDelegate>  代码 下面 如图 :

松开鼠标 ,位置正确的话 如上图, 会弹出一个对话框,让你填写连接信息  : 我们只填 Name 值 就可以了  在name 内容框填写 “webView”  点击 connent  完成连接

执行这一步 xcode 会为我们生成一系列的代码,在WebViewViewController.h 文件中生成了一个输出口,在WebViewViewController.m 文件中生成了webView对象的管理方法。 各位童鞋细心观察下 就会知道

下面我们在 WebViewViewController.m 控制器中为webview 添加行为

在 WebViewViewController.m文件的 - (void)viewDidLoad 方法中 添加一下代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
    [self.webView loadRequest:request];
    // Do any additional setup after loading the view, typically from a nib.
}

运行我们的模拟器 看看吧, 这时我们已经可以 在视图上打开 百度地址了。  如图 :

但这在实际应用中远远还不够呢, 因为移动网络的问题,可能会出现html页面打不开,打开慢,或者出错等等,我们都需要坐相应的提示操作。所以我们还需要继续给webview 优化下,让用户体验更好 。

下面我们看看webview 几个常用的方法

一.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: 在WebViewViewController.h文件中 声明协议  在.h 添加下面红色部分的代码

@interface WebViewViewController : UIViewController<UIWebViewDelegate>
@property (retain, nonatomic) IBOutlet UIWebView *webView;

@end

2:在WebViewViewController.m 文件中实现下面几个方法

1.- (void )webViewDidStartLoad:(UIWebView  *)webView   网页开始加载的时候调用
2.- (void )webViewDidFinishLoad:(UIWebView  *)webView  网页加载完成的时候调用
3.- (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error 网页加载错误的时候调用

我们就可以在这几个方法里面做处理了。

接着上面的继续 ,往下坐 , 在加载的时候 给用户等待提示,加载完成后 取消等待提示

1:打开WebViewViewController.xib 文件 在视图文件拖一个 Actionvity IndicationView 组件,摆好位置, 并且添加连接 此步和 webView 添加连接步骤是一样的 忘了 看看上面去 。嘻

2:给webView 添加委托 在WebViewViewController.m 文件中- (void)viewDidLoad方法中 给webview 添加委托 最终如下面代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.webView setDelegate:self];
    NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.163.com"]];
    [self.webView loadRequest:request];
    // Do any additional setup after loading the view, typically from a nib.
}

因为必须给 webview添加委托 才可以回调那个几个webview 函数喔  这一步不要忘了喔

各位童鞋 也可以直接在 xib视图文件中直接给webView添加委托,按住ctrl键 点击ViewView组件  然后选择 OutLets 下面的 Delegate 拖至File,s Ownver 即可

然后 在 WebViewViewController.m 文件的实现下面代码

-(void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"load ing");
    [activityIndicationView startAnimating];
    activityIndicationView.hidden=NO;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    NSLog(@"finish ing");
    [activityIndicationView stopAnimating];
    activityIndicationView.hidden=YES;
}

保存运行 ,这里没有实现 错误的 方法喔 ,各位童鞋如果有兴趣 ,可以自己 是试试

搞定 。  不明白之处 欢迎留言,一起学习共同进步。

时间: 2024-12-21 21:39:24

ios开发入门- WebView使用的相关文章

iOS开发入门教程_iOS开发视频教程

iOS开发入门教程 (Object-C.网络编程.多线程.蓝牙.二维码.Cocos2D.OpenGL)适合人群:初级课时数量:34课时用到技术:IOS,Object-C,OpenGL,XCode,Cocos 2D涉及项目:Cocos+2D.Game Kit蓝牙数据处理等咨询QQ:1840215592 iOS开发入门教程详细查看:http://www.ibeifeng.com/goods-471.html1.1.课程目标iOS开发入门教程内容的目标是初学者入门,让入门者提高,让所有人符合企业招聘的

iOS开发入门——17条 Swift 最佳实践规范(下)

文章来源:http://www.zretc.com/technologyDetail/433.html 承接上文:iOS开发入门--17条 Swift 最佳实践规范(上) 9.单例(Singletons) 在Swift中单例是很简单的: class ControversyManager { static let sharedInstance = ControversyManager()} Swift 的 runtime 会保证单例的创建并且采用线程安全的方式访问. 单例通常只需要访问"share

iOS开发入门——17条 Swift 最佳实践规范(上)

文章来源:http://www.zretc.com/technologyDetail/432.html 前言 这篇IOS开发入门文章是我根据在 SwiftGraphics 工作时的一系列笔记整理出来的.文中大多数建议是经过深思熟虑的,但仍可以有其他类似的解决方法.因此,如果其他方案是有意义的,这些方案会被添加上去. 这个最佳实践不是强加或者推荐 Swift 在程序.面向对象或者函数风格上的应用.更重要的是,这里要讲述的是务实的方法.如有需要的话,某些建议可能会集中在面向对象或者实用的解决方法.

iOS开发入门知识点总结

Objective-C 一门动态语言,动态两个字主要就体现在我们调用方法的时候,运行时回动态的查找方法,然后调用相应的函数地址.运行时是整个Objective-c程序的基石,有了它我们的程序才能正常运行起来. NSObject是Cocoa中绝大部分类的基类,它主要是提供了序列话,拷贝对象,以及支持运行时动态识别的框架. 另外,在OC中,一切皆为指针. 在Objective-c中每一个类对象最开始的位置都会有一个isa指针,该指针指向一块内存区域,该部分主要包含两部分信息: 1.指向父类的指针.

iOS开发入门教程

iOS开发入门教程 (Object-C.网络编程.多线程.蓝牙.二维码.Cocos2D.OpenGL)http://www.ibeifeng.com/goods-471.html咨询QQ2110053820课程讲师:群雄 课程分类:IOS适合人群:初级课时数量:34课时更新程度:完成用到技术:IOS,Object-C,OpenGL,XCode,Cocos 2D涉及项目:Cocos+2D.Game Kit蓝牙数据处理等 1.1.课程背景随着移动互联网时代的到来,iPhone作为智能手机旗舰版,iO

ios开发入门篇(四):UIWebView结合UISearchBar的简单用法

 UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一:首先定义这两个控件,并在.h文件中实现UISearchBarDelegate,UIWebViewDelegate两个代理 @interface TestView : UIViewController<UISearchBarDelegate,UIWebViewDelegate> @property(

iOS开发入门

本文记录自己如何从无到有学习iOS开发.本人背景如下:iOS零基础,学过C++. 1. kidscoding教程 该教程编写环境为:Xcode5+iOS7,虽然有些过时,但是讲解详细,非常适合入门. 本人环境为Xcode7+iOS9,在学习教程第二部分第24章时,遇到了一个问题:iOS navigation has no navigation item.

IOS开发入门教程-总结篇-写给狂热的编程爱好者们

程序发轻狂,代码阑珊,苹果开发安卓狂!——写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有一段时间,最近稍微闲下来了,正好也想记录一下前阶段的整个学习过程.索性就从最基础的开始,一步一步记录一个最简单的 iOS应用从创建到运行的全过程,其中会穿插很多相关知识或是遇到过的问题.其实算不上教程,但希望能够帮助更多的开发爱好者更快.更好的入门. iOS开发环境简述 最友好,最现实,也是最方便的开发环境就是在Mac系统中安装Xcode进行开发.原因在于:第一,开发工具(Xcode)限制.

IOS开发入门实例

关于如何创建第一个 iOS 应用 本篇“第一个 iOS 应用”教程将向你介绍 iOS 应用开发中的“三个T”: Tools(工具)如何利用 Xcode 创建和管理工程. Technologies(技术)如何创建能够响应用户输入的应用. Techniques(技巧)如何充分利用 iOS 应用开发的基础设计模式. 当你完成本教程的所有步骤之后,你的应用看起来会和下边图中的差不多: 从图中可以看到,你创建的应用界面上有三个主要的元素: 一个文本框(用户把文字输入到这里) 一个标签(这里可以用来显示信息