首页 > 代码库 > iOS网络篇3-利用UIWebView做一个浏览器功能

iOS网络篇3-利用UIWebView做一个浏览器功能

在UIkit中,苹果封装了一个特别好用的控件UIWebView能够实现简单的网页加载和文件加载

一、加载网页资源

1.首先新建一个singleView项目,在storyboard拖如下控件

技术分享

2.设置相关属性连接如下

技术分享

3.在ViewController.m里的类扩展遵守UISearchBarDelegate和UIWebViewDelegate

@interface ViewController () <UISearchBarDelegate,UIWebViewDelegate>/**网页展示*/@property (weak, nonatomic) IBOutlet UIWebView *webView;@end

4.在ViewController.m里抽出一个方法,用于浏览器加载指定的字符串

// 让浏览器加载指定的字符串- (void)loadString:(NSString *)str{     NSString *urlStr = str;    //1.判断资源路径是否以http://开头    if (![str hasPrefix:@"http://"]) {//不是以http://开头        //资源通过百度搜索        urlStr = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", str];    }    //3.创建URL    NSURL *url = [NSURL URLWithString:urlStr];        //4.创建请求    NSURLRequest *request = [NSURLRequest requestWithURL:url];        //5.加载请求    [self.webView loadRequest:request];}

5.当搜索框输入文字完毕后点击确定(返回)按钮,会调用searchBarSearchButtonClicked:(UISearchBar *)searchBar代理方法

#pragma mark - 搜索栏点击搜索按钮后调用- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{    //加载指定资源    [self loadString:searchBar.text];    //退出键盘    [self.view endEditing:YES];}

6.如果想首页显示百度页面,直接在viewDidLoad方法里加载百度首页

- (void)viewDidLoad{    [super viewDidLoad];        [self loadString:@"http://m.baidu.com"];    }

7.实现浏览器的前进后退功能

在UIWebView控件内部已经实现了前进和后退功能,我们只需和底部工具条前进后退按钮进行相关连即可,在storyboard中进行如下处理

技术分享

8.实现UIWebView的代理方法,控制前进后退是否能被点击,这里不要忘记在类扩展拥有这两个属性

@interface ViewController () <UISearchBarDelegate,UIWebViewDelegate>/**网页展示*/@property (weak, nonatomic) IBOutlet UIWebView *webView;/**后退*/@property (weak, nonatomic) IBOutlet UIBarButtonItem *back;/**前进*/@property (weak, nonatomic) IBOutlet UIBarButtonItem *forward;@end
#pragma mark - UIWebView代理方法- (void)webViewDidFinishLoad:(UIWebView *)webView{    self.back.enabled = self.webView.canGoBack;    self.forward.enabled = self.webView.canGoForward;}

OK,UIWebView的简单加载网页使用,利用UIWebView还可以加载Bundle资源,也简单易学,这里就不详细阐述了。

 

iOS网络篇3-利用UIWebView做一个浏览器功能