UIWebView是iOS sdk中一个最经常使用的控件。是内置的浏览器控件,咱们能够用它来浏览网页、打开文档等等,UIWebView可以加载html/htm、pdf、docx、txt等格式的文件
系统自带的Safari浏览器就是经过UIWebView实现的。下面个人一块儿来开开如何简单使用webView。html
一、搭建UI界面web
2MIME的英文全称是“Multipurpose Internet Mail Extensions” 浏览器
多用途互联网邮件扩展,是一个互联网标准,最先应用于电子邮件系统,后来应用到浏览器,在这里咱们须要获得文件的MIMIE类型,如何获取呢?我们经过下面方式获取测试
- (NSString *) getMimeType:(NSString * ) path{ //本地文件路径 NSURL * url=[NSURL fileURLWithPath:path]; //建立请求 NSURLRequest * request=[NSURLRequest requestWithURL:url]; NSURLResponse * response; //发送同步请求获取响应类型 [NSURLConnection sendSynchronousRequest:request returningResponse:(&response) error:nil]; return response.MIMEType; }
3 加载pdf文件url
//监测全部数据类型:设定电话号码、网址、电子邮件和日期等文字变为连接文字 [webView setDataDetectorTypes:UIDataDetectorTypeAll]; //设置须要展现的文件路径,而且取得mimeType类型 NSString * str=[[NSBundle mainBundle] pathForResource:@"iOS6Cookbook.pdf" ofType:nil]; NSString * mimeType=[self getMimeType:str]; //调用方法加载数据 NSData * data=[NSData dataWithContentsOfFile:str]; [self.webView loadData:data MIMEType:mimeType textEncodingName:@"UTF-8" baseURL:nil];
效果图:spa
四、加载txt和上面相似本文不作讲解 代理
五、加载HTML,如今有html文件一个code
加载页面,获取字符串而后显示便可:orm
//监测全部数据类型:设定电话号码、网址、电子邮件和日期等文字变为连接文字 [webView setDataDetectorTypes:UIDataDetectorTypeAll]; //设置须要展现的文件路径,而且取得mimeType类型 NSString * str=[[NSBundle mainBundle] pathForResource:@"book_v2.html" ofType:nil]; NSString * mimeType=[self getMimeType:str]; //调用方法加载数据 NSData * data=[NSData dataWithContentsOfFile:str]; NSString * htmlStr=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; [self.webView loadHTMLString:htmlStr baseURL:nil];
效果图:htm
六、加载URL请求
//监测全部数据类型:设定电话号码、网址、电子邮件和日期等文字变为连接文字 [webView setDataDetectorTypes:UIDataDetectorTypeAll]; NSURL * url=[NSURL URLWithString:@"http://21-sun.com"]; [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
效果图:
七、代理方法
// 网页开始加载的时候调用 -(void)webViewDidStartLoad:(UIWebView *)webView // 网页加载完成的时候调用 -(void)webViewDidFinishLoad:(UIWebView *)webView // 网页加载出错的时候调用 -(void)webView:(UIWebView )webView didFailLoadWithError:(NSError )error // 网页中的每个请求都会被触发这个方法,返回NO表明不执行这个请求(经常使用于JS与iOS之间通信) -(BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType
想要了解更多内容的小伙伴,能够点击查看源码,亲自运行测试。
疑问咨询或技术交流,请加入官方QQ群: (452379712)