UIWebView用法详解及代码分享
2016-02-17 23:45
585 查看
今天我们来详细UIWebView用法。UIWebView是iOS内置的浏览器控件,可以浏览网页、打开文档等 能够加载html/htm、pdf、docx、txt等格式的文件.
用UIWebView我们就可以做一个简易的浏览器。效果如下:
大功告成,再来看看效果:
以上分享的内容我做了一个demo,需要的话可以点击这里下载:UIWebView用法详解
本文出处刚刚在线:http://www.superqq.com/blog/2015/07/08/uiwebviewyong-fa-xiang-jie/
用UIWebView我们就可以做一个简易的浏览器。效果如下:
创建UIWebView
首先创建UIWebView,这个不难,设置frame,然后添加到self.view上即可:UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; webView.scalesPageToFit = YES;//自动对页面进行缩放以适应屏幕 [self.view addSubview:webView];
UIWebView加载网络地址
用UIWebView来加载网络地址,那我的博客:http://www.superqq.com 来举例。代码如下:NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.superqq.com"]]; [self.view addSubview:webView]; [webView loadRequest:request];
UIWebView加载本地资源
通过NSURLRequest加载
NSString *path = [[NSBundle mainBundle] pathForResource:@"swift" ofType:@"html"]; NSURL* url = [NSURL fileURLWithPath:path];//创建URL NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest [webView loadRequest:request];//加载
通过NSString加载
UIWebView 还支持将一个NSString对象作为源来加载。你可以为其提供一个基础URL,来指导UIWebView对象如何跟随链接和加载远程资源:NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; [webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:path]];
自动检测电话
设置这个属性,如果在加载的网页中遇到电话号码,直接单击就可以拨打,非常方便:webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打
设置代理和代理方法
UIWebView有五个代理方法,我们可以在不同的代理方法中,完成不同的需求。//设置代理 webView.delegate = self; //代理方法 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { //返回YES,进行加载。通过UIWebViewNavigationType可以得到请求发起的原因 return YES; } - (void)webViewDidStartLoad:(UIWebView *)webView { //开始加载,可以加上风火轮(也叫菊花) } - (void)webViewDidFinishLoad:(UIWebView *)webView { //完成加载 } - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { //加载出错 }
创建加载他、停止、后退、前进按钮
创建四个按钮,分别是加载按钮、停止按钮、返回按钮、前进按钮:NSArray *array = [NSArray arrayWithObjects:@"加载",@"停止",@"返回",@"前进", nil]; int far = (SCREEN.width - 200)/5; for (int i = 0; i < array.count; i++) { UIButton *button = [[UIButton alloc] init]; button.frame = CGRectMake( (i + 1) * far + 50 * i, SCREEN.height - 60, 50, 40); button.tag = 200 + i; [button addTarget:self action:@selector(actionClick:) forControlEvents:UIControlEventTouchUpInside]; [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; [button setBackgroundColor:[UIColor orangeColor]]; [button setTitle:array[i] forState:UIControlStateNormal]; [self.view addSubview:button]; }
前进后退
给四个按钮绑定事件,根据tag值来区分每一个点击事件:- (void)actionClick:(UIButton *)button { switch (button.tag) { case 200: { [self.webView reload];//加载 } break; case 201: { [self.webView stopLoading];//停止加载 } break; case 202: { [self.webView goBack];//返回 } break; case 203: { [self.webView goForward];//前进 } break; default: break; } }
大功告成,再来看看效果:
以上分享的内容我做了一个demo,需要的话可以点击这里下载:UIWebView用法详解
本文出处刚刚在线:http://www.superqq.com/blog/2015/07/08/uiwebviewyong-fa-xiang-jie/
相关文章推荐
- iOS 中的 NSTimer
- Swift开发iOS应用(1)列表的实现
- iOS开发之NSTimer使用初探
- 通过注册的URL Scheme向目标APP传递参数
- 阅读 KBEngine 要理清的问题
- iOS学习----------图片的简单处理(2)
- 消除“Permission is only granted to system apps”错误
- iOS学习----------图片的简单处理(1)
- LBS-Object C 定位,地图,导航
- 一个实现了APP内部集中式通知中心,简化通知管理,简化代码逻辑和debug
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- [Unity3D]C# 调用C++ DLL
- iOS开发之保存照片到自己创建的相簿
- iOS开发之保存照片到系统相册(Photo Album)
- Swift - 设置UIView的背景色和背景图片
- 如何在电脑上抢微信红包
- iOS7之后如何正确隐藏状态栏
- iOS学习----------详解FFMPEG API
- iOS开发-retain/assign/strong/weak/copy/mutablecopy/autorelease区别
- Activity生命周期的简单分析