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资源,也简单易学,这里就不详细阐述了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。