UIWebView是iOS sdk中一個最常用的控件。是內置的瀏覽器控件,我們可以用它來瀏覽網頁、打開文檔等等,UIWebView能夠加載html/htm、pdf、docx、txt等格式的文件
系統自帶的Safari瀏覽器就是通過UIWebView實現的。下面我的一起來開開如何簡單使用webView。
1、搭建UI界面
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文件
//監測所有數據類型:設定電話號碼、網址、電子郵件和日期等文字變為鏈接文字 [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];
效果圖:
4、加載txt和上面類似本文不做講解
5、加載HTML,現在有html文件一個
加載頁面,獲取字符串然后顯示即可:
//監測所有數據類型:設定電話號碼、網址、電子郵件和日期等文字變為鏈接文字 [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];
效果圖:
6、加載URL請求
//監測所有數據類型:設定電話號碼、網址、電子郵件和日期等文字變為鏈接文字 [webView setDataDetectorTypes:UIDataDetectorTypeAll]; NSURL * url=[NSURL URLWithString:@"http://21-sun.com"]; [self.webView loadRequest:[NSURLRequest requestWithURL:url]];
效果圖:
7、代理方法
// 網頁開始加載的時候調用-(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)
新聞熱點
疑難解答