UIWebView是内置的浏覽器控件,可以用它來浏覽網頁、打開文檔,關于浏覽網頁榜樣可以參考UC,手機必備浏覽器,至于文檔浏覽的手機很多圖書閱讀軟體,UIWebView是一個混合體,具體的功能控件内置的,實作一些基本的功能。UIWebView可以檢視Html網頁,pdf檔案,docx檔案,txt檔案檔案,系統自帶的Safari就是UIWebView實作的。
頁面布局很簡單就是一個文本框,一個按鈕,一個UIWebView,頁面布局如下:

如果想簡單一點的話,其實用UIWebView也行,不過需要先準備一些文本資料,具體如下:
①直接拼接Html,用UIWebView顯示,viewDidLoad中添加代碼:
1
2
3
<code>//直接加載Html字元串</code>
<code>NSString</code> <code>*htmlStr=@</code><code>"<html><head><title>Html加載</title></head><body>HtmlDemo-FlyElephant</body></html>"</code><code>;</code>
<code>[</code><code>self</code><code>.webView loadHTMLString:htmlStr baseURL:</code><code>nil</code><code>];</code>
②加載本地的Html網頁,Book.html中代碼:
4
5
6
7
8
9
10
<code><!DOCTYPE html></code>
<code><html></code>
<code><head></code>
<code><meta charset=</code><code>"UTF-8"</code><code>></code>
<code><title>書籍</title></code>
<code></head></code>
<code><body></code>
<code>少年維特之煩惱-歌德</code>
<code></body></code>
<code></html></code>
viewDidLoad代碼:
<code>NSString</code> <code>*filePath = [[</code><code>NSBundle</code> <code>mainBundle]pathForResource:@</code><code>"Book"</code> <code>ofType:@</code><code>"html"</code><code>];</code>
<code>NSString</code> <code>*htmlString = [</code><code>NSString</code> <code>stringWithContentsOfFile:filePath encoding:</code><code>NSUTF8StringEncoding</code> <code>error:</code><code>nil</code><code>];</code>
<code>[</code><code>self</code><code>.webView loadHTMLString:htmlString baseURL:[</code><code>NSURL</code> <code>URLWithString:filePath]];</code>
③加載本地的pdf檔案,viewDidLoad代碼:
<code>NSURL</code> <code>*url = [[</code><code>NSBundle</code> <code>mainBundle]URLForResource:@</code><code>"Book.pdf"</code> <code>withExtension:</code><code>nil</code><code>];</code>
<code>NSURLRequest</code> <code>*request = [</code><code>NSURLRequest</code> <code>requestWithURL:url];</code>
<code>[</code><code>self</code><code>.webView loadRequest:request];</code>
加載pdf的第二種方式:
<code>NSString</code> <code>*path = [[</code><code>NSBundle</code> <code>mainBundle]pathForResource:@</code><code>"Book.pdf"</code> <code>ofType:</code><code>nil</code><code>];</code>
<code>//以二進制的形式加載資料</code>
<code>NSData</code> <code>*data = [</code><code>NSData</code> <code>dataWithContentsOfFile:path];</code>
<code>[</code><code>self</code><code>.webView loadData:data MIMEType:@</code><code>"application/pdf"</code> <code>textEncodingName:@</code><code>"UTF-8"</code> <code>baseURL:</code><code>nil</code><code>];</code>
④加載本地txt檔案,viewDidLoad代碼如下:
<code>//加載txt</code>
<code> </code><code>NSURL</code> <code>*url = [[</code><code>NSBundle</code> <code>mainBundle]URLForResource:@</code><code>"Book.txt"</code> <code>withExtension:</code><code>nil</code><code>];</code>
<code> </code><code>//設定Url</code>
<code> </code><code>[</code><code>self</code><code>.webView loadRequest:[</code><code>NSURLRequest</code> <code>requestWithURL:url]];</code>
⑤加載Word,viewDidLoad代碼如下:
<code>//加載Word</code>
<code>NSURL</code> <code>*url = [[</code><code>NSBundle</code> <code>mainBundle]URLForResource:@</code><code>"Book.docx"</code> <code>withExtension:</code><code>nil</code><code>];</code>
<code>//設定加載Url</code>
<code>[</code><code>self</code><code>.webView loadRequest:[</code><code>NSURLRequest</code> <code>requestWithURL:url]];</code>
⑥加載網絡資料,跳轉按鈕事件中實作如下:
<code>NSURLRequest</code> <code>*request =[</code><code>NSURLRequest</code> <code>requestWithURL:[</code><code>NSURL</code> <code>URLWithString:</code><code>self</code><code>.urlText.text]];</code>
⑦設定委托,在不同的階段處理資料,實作UIWebViewDelegate,設定自己本身為委托對象;
<code>[</code><code>self</code><code>.webView setDelegate:</code><code>self</code><code>];</code>
常用的三個方法:
11
12
<code>//加載開始</code>
<code>- (</code><code>void</code><code>)webViewDidStartLoad:(UIWebView *)webView{</code>
<code> </code><code>NSLog</code><code>(@</code><code>"加載開始的時候的方法調用"</code><code>);</code>
<code>}</code>
<code>//加載完成</code>
<code>-(</code><code>void</code><code>)webViewDidFinishLoad:(UIWebView *)webView{</code>
<code> </code><code>NSLog</code><code>(@</code><code>"加載完成的時候電腦方法調用"</code><code>);</code>
<code>//加載出錯</code>
<code>- (</code><code>void</code><code>)webView:(UIWebView *)webView didFailLoadWithError:(</code><code>NSError</code> <code>*)error{</code>
<code> </code><code>NSLog</code><code>(@</code><code>"加載出錯的時候的調用"</code><code>);</code>
本文轉自Fly_Elephant部落格園部落格,原文連結:http://www.cnblogs.com/xiaofeixiang/p/4307573.html,如需轉載請自行聯系原作者