UIWebView簡介
目前成都創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、長陽網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
是iOS內(nèi)置的瀏覽器控件,可以瀏覽網(wǎng)
頁、打開文檔等
能夠加載html/htm、pdf、docx、txt等格
式的文件
系統(tǒng)自帶的Safari瀏覽器就是通過UIWebView實現(xiàn)的
關(guān)于MIME type
MIME的英文全稱是“Multipurpose Internet Mail Extensions” 多用途互聯(lián) 網(wǎng)郵件擴展,是一個互聯(lián)網(wǎng)標準,最早應(yīng)用于電子郵件系統(tǒng),后來應(yīng) 用到瀏覽器
服務(wù)器通過說明多媒體數(shù)據(jù)的MIME類型,告訴瀏覽器發(fā)送的多媒體 數(shù)據(jù)的類型,從而讓瀏覽器知道接收到的信息哪些是MP3文件,哪些 是Shockwave文件等等
服務(wù)器將MIME標志符放入傳送的數(shù)據(jù)中告訴瀏覽器使用哪種插件讀 取相關(guān)文件
MIME類型能包含視頻、圖像、文本、音頻、應(yīng)用程序等數(shù)據(jù)
獲得本地文件的MIMEType
// 獲得本地文件的MIMEType
- (NSString *)MIMEType:(NSString *)fileName
{
// 定義路徑 NSString *path = [[NSBundlemainBundle]pathForResource:fileName ofType:nil];
// 定義URL NSURL *url = [NSURL fileURLWithPath:path];
// 定義請求 NSURLRequest *request = [NSURLRequestrequestWithURL: url];
// 定義響應(yīng) NSURLResponse *response = nil;
// 發(fā)送同步請求 [NSURLConnectionsendSynchronousRequest:requestreturningResponse:&response
error:nil];
NSLog(@"MIMEType is %@", [response MIMEType]);
return [response MIMEType]; }
UIWebView演練--準備項目介紹
準備項目說明
gotoURLString方法由文本框回車事件調(diào)用,為了 方便用戶加載本地文件
UIWebView演練(1)--gotoURL方法
// 訪問指定的URL內(nèi)容 - (void)gotoURL:(NSURL*)url {
// 使用URL字符串替代URL文本框 [_urlText setText:[url absoluteString]];
// 定義請求
NSURLRequest *request = [NSURLRequestrequestWithURL:url]; // 設(shè)置數(shù)據(jù)檢測類型[_webViewsetDataDetectorTypes:UIDataDetectorTypeAll];
// 加載請求
[_webView loadRequest:request]; }
UIWebView--訪問網(wǎng)站和加載本地HTML文件
UIWebView--加載本地文本文件和Word文檔
UIWebView--加載本地PDF文件
UIWebView演練(2)--loadHTMLString方法 // 測試加載HTML字符串
NSString *html = @"
";
[_webView loadHTMLString:htmlbaseURL:nil];
// 測試加載部分HTML字符串,不需要顯示整個網(wǎng)頁內(nèi)容時,通常使用此方法 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代理方法
// 網(wǎng)頁開始加載的時候調(diào)用
- (void)webViewDidStartLoad:(UIWebView*)webView
// 網(wǎng)頁加載完成的時候調(diào)用
- (void)webViewDidFinishLoad:(UIWebView*)webView
// 網(wǎng)頁加載出錯的時候調(diào)用
- (void)webView:(UIWebView *)webView didFailLoadWithError: (NSError *)error
// 網(wǎng)頁中的每一個請求都會被觸發(fā)這個方法,返回NO代表不執(zhí)行這個請求(常 用于JS與iOS之間通訊)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
JS與iOS之間的通信--iOS調(diào)用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(); "];
本節(jié)知識點回顧
UIWebView是內(nèi)置瀏覽器控件,能夠加載html、pdf、txt等多種格式文件
常用加載方法: - loadRequest:
- loadHTMLString:baseURL:
- loadData:MIMEType:textEncodingName:baseURL:
常用導航方法:
- goBack - 回退
- goForward - 前進
- reload - 重載
- stopLoading - 取消載入內(nèi)容
常用屬性:
- scalespageToFit - 自動對頁面進行縮放以適應(yīng)屏幕
- dataDetectorTypes - 設(shè)定電話號碼、網(wǎng)址、電子郵件和日期等文字變?yōu)殒溄游淖?br /> 瀏覽器通過MIME標志符可以知道使用哪種插件讀取相關(guān)文件 iOS可以直接調(diào)用js代碼與頁面通訊
分享名稱:IOS屬性--UIWebView
URL鏈接:http://aaarwkj.com/article44/peihhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、手機網(wǎng)站建設(shè)、做網(wǎng)站、云服務(wù)器、Google、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)