您好,登錄后才能下訂單哦!
UIWebView簡介
是iOS內置的瀏覽器控件,可以瀏覽網
頁、打開文檔等
能夠加載html/htm、pdf、docx、txt等格
式的文件
系統自帶的Safari瀏覽器就是通過UIWebView實現的
關于MIME type
MIME的英文全稱是“Multipurpose Internet Mail Extensions” 多用途互聯 網郵件擴展,是一個互聯網標準,最早應用于電子郵件系統,后來應 用到瀏覽器
服務器通過說明多媒體數據的MIME類型,告訴瀏覽器發送的多媒體 數據的類型,從而讓瀏覽器知道接收到的信息哪些是MP3文件,哪些 是Shockwave文件等等
服務器將MIME標志符放入傳送的數據中告訴瀏覽器使用哪種插件讀 取相關文件
MIME類型能包含視頻、圖像、文本、音頻、應用程序等數據
獲得本地文件的MIMEType
// 獲得本地文件的MIMEType
- (NSString *)MIMEType:(NSString *)fileName
{
// 定義路徑 NSString *path = [[NSBundlemainBundle]pathForResource:fileName ofType:nil];
// 定義URL NSURL *url = [NSURL fileURLWithPath:path];
// 定義請求 NSURLRequest *request = [NSURLRequestrequestWithURL: url];
// 定義響應 NSURLResponse *response = nil;
// 發送同步請求 [NSURLConnectionsendSynchronousRequest:requestreturningResponse:&response
error:nil];
NSLog(@"MIMEType is %@", [response MIMEType]);
return [response MIMEType]; }
UIWebView演練--準備項目介紹
準備項目說明
gotoURLString方法由文本框回車事件調用,為了 方便用戶加載本地文件
UIWebView演練(1)--gotoURL方法
// 訪問指定的URL內容 - (void)gotoURL:(NSURL*)url {
// 使用URL字符串替代URL文本框 [_urlText setText:[url absoluteString]];
// 定義請求
NSURLRequest *request = [NSURLRequestrequestWithURL:url]; // 設置數據檢測類型[_webViewsetDataDetectorTypes:UIDataDetectorTypeAll];
// 加載請求
[_webView loadRequest:request]; }
UIWebView--訪問網站和加載本地HTML文件
UIWebView--加載本地文本文件和Word文檔
UIWebView--加載本地PDF文件
UIWebView演練(2)--loadHTMLString方法 // 測試加載HTML字符串
NSString *html = @"
";
[_webView loadHTMLString:htmlbaseURL:nil];
// 測試加載部分HTML字符串,不需要顯示整個網頁內容時,通常使用此方法 NSString *partHtml = @"
";
[_webView loadHTMLString:partHtmlbaseURL:nil];
UIWebView演練(3)--loadData方法
// 測試加載本地PDF,需要指定MIMETYPE ......
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"application/pdf"textEncodingName:@"UTF-8" baseURL:nil];
// 測試加載本地文本文件,需要指定MIMETYPE ......
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"text/plain" textEncodingName:@"UTF-8"baseURL:nil];
// 測試加載本地HTML文件,需要指定MIMETYPE
......
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]resourcePath]isDirectory:YES];
[_webView loadData:[NSDatadataWithContentsOfFile:dataPath]MIMEType:@"text/html" textEncodingName:@"UTF-8"baseURL:baseURL];
說明:baseURL是基準URL,程序要用到其他資源的位置
UIWebViewDelegate代理方法
// 網頁開始加載的時候調用
- (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
JS與iOS之間的通信--iOS調用JS代碼
// 獲取當前頁面的url
NSString *url = [_webViewstringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSLog(@"url %@", url);
// 獲取當前頁面的標題 NSString *title = [_webView
stringByEvaluatingJavaScriptFromString:@"document.title"];NSLog(@"title %@", title);
// 提交表單
[_webViewstringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];
本節知識點回顧
UIWebView是內置瀏覽器控件,能夠加載html、pdf、txt等多種格式文件
常用加載方法: - loadRequest:
- loadHTMLString:baseURL:
- loadData:MIMEType:textEncodingName:baseURL:
常用導航方法:
- goBack - 回退
- goForward - 前進
- reload - 重載
- stopLoading - 取消載入內容
常用屬性:
- scalespageToFit - 自動對頁面進行縮放以適應屏幕
- dataDetectorTypes - 設定電話號碼、網址、電子郵件和日期等文字變為鏈接文字
瀏覽器通過MIME標志符可以知道使用哪種插件讀取相關文件 iOS可以直接調用js代碼與頁面通訊
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。