本文共 2554 字,大约阅读时间需要 8 分钟。
UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。
页面布局很简单就是一个文本框,一个按钮,一个UIWebView,页面布局如下:
如果想简单一点的话,其实用UIWebView也行,不过需要先准备一些文本数据,具体如下:
①直接拼接Html,用UIWebView显示,viewDidLoad中添加代码:
1 2 3 | //直接加载Html字符串 NSString *htmlStr=@ "<html><head><title>Html加载</title></head><body>HtmlDemo-FlyElephant</body></html>" ; [ self .webView loadHTMLString:htmlStr baseURL: nil ]; |
②加载本地的Html网页,Book.html中代码:
1 2 3 4 5 6 7 8 9 10 | <!DOCTYPE html> <html> <head> <meta charset= "UTF-8" > <title>书籍</title> </head> <body> 少年维特之烦恼-歌德 </body> </html> |
viewDidLoad代码:
1 2 3 | NSString *filePath = [[ NSBundle mainBundle]pathForResource:@ "Book" ofType:@ "html" ]; NSString *htmlString = [ NSString stringWithContentsOfFile:filePath encoding: NSUTF8StringEncoding error: nil ]; [ self .webView loadHTMLString:htmlString baseURL:[ NSURL URLWithString:filePath]]; |
③加载本地的pdf文件,viewDidLoad代码:
1 2 3 4 5 | NSURL *url = [[ NSBundle mainBundle]URLForResource:@ "Book.pdf" withExtension: nil ]; NSURLRequest *request = [ NSURLRequest requestWithURL:url]; [ self .webView loadRequest:request]; |
加载pdf的第二种方式:
1 2 3 4 5 6 | NSString *path = [[ NSBundle mainBundle]pathForResource:@ "Book.pdf" ofType: nil ]; //以二进制的形式加载数据 NSData *data = [ NSData dataWithContentsOfFile:path]; [ self .webView loadData:data MIMEType:@ "application/pdf" textEncodingName:@ "UTF-8" baseURL: nil ]; |
④加载本地txt文件,viewDidLoad代码如下:
1 2 3 4 | //加载txt NSURL *url = [[ NSBundle mainBundle]URLForResource:@ "Book.txt" withExtension: nil ]; //设置Url [ self .webView loadRequest:[ NSURLRequest requestWithURL:url]]; |
⑤加载Word,viewDidLoad代码如下:
1 2 3 4 | //加载Word NSURL *url = [[ NSBundle mainBundle]URLForResource:@ "Book.docx" withExtension: nil ]; //设置加载Url [ self .webView loadRequest:[ NSURLRequest requestWithURL:url]]; |
⑥加载网络数据,跳转按钮事件中实现如下:
1 2 | NSURLRequest *request =[ NSURLRequest requestWithURL:[ NSURL URLWithString: self .urlText.text]]; [ self .webView loadRequest:request]; |
⑦设置委托,在不同的阶段处理数据,实现UIWebViewDelegate,设置自己本身为委托对象;
1 | [ self .webView setDelegate: self ]; |
常用的三个方法:
1 2 3 4 5 6 7 8 9 10 11 12 | //加载开始 - ( void )webViewDidStartLoad:(UIWebView *)webView{ NSLog (@ "加载开始的时候的方法调用" ); } //加载完成 -( void )webViewDidFinishLoad:(UIWebView *)webView{ NSLog (@ "加载完成的时候电脑方法调用" ); } //加载出错 - ( void )webView:(UIWebView *)webView didFailLoadWithError:( NSError *)error{ NSLog (@ "加载出错的时候的调用" ); } |
本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4307573.html,如需转载请自行联系原作者