首页 > 代码库 > 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做一个浏览器功能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。