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)